自启动技术之快速启动目录

快速启动目录:

这是一种最简单的自启动技术,因为不用修改任何数据。

实现原理:

windows系统有自带的快速启动文件夹,只要把程序(一般是程序快捷方式)放入到这个快速启动文件夹中,系统在启动时就会自动地加载并运行相应的程序,实现开机自启动功能。

注意:快速启动目录并不是一个固定的目录,每台计算机的快速启动目录都不相同。需要使用 SHGetSpecialFolderPath
函数获取Windows系统中快速启动目录的路径,快速启动目录的CSIDL标识值为CSIDL_STARTUP。

使用CopyFile函数,将想要自启动的程序复制到启动目录下即可。(快捷方式同上,也可达到自启动效果)

代码实现:

BOOL CSelfStartDlg::FastStartDirectory(const char* lpszSrcFilePath)
{
     
	BOOL bRet = FALSE;
	char szStartupPath[MAX_PATH] = {
      0 };
	char szDestFilePath[MAX_PATH] = {
      0 };
	char TempSrcPath[MAX_PATH] = {
      0 };

	strcpy_s(TempSrcPath, MAX_PATH, lpszSrcFilePath);
	//获取快速启动目录的路径
	bRet = SHGetSpecialFolderPathA(NULL, szStartupPath, CSIDL_STARTUP, TRUE);

	//保存快速启动目录
	USES_CONVERSION;
	m_FastStartDir = A2W(szStartupPath);
	if (FALSE == bRet)
	{
     
		return FALSE;
	}

	//获取目标文件名
	PathStripPathA((char*)lpszSrcFilePath);

	//拼接路径
	wsprintfA(szDestFilePath, "%s\\%s", szStartupPath, lpszSrcFilePath);

	//拷贝文件到快速启动目录下
	bRet = CopyFileA(TempSrcPath, szDestFilePath, FALSE);
	if (FALSE == bRet)
	{
     
		return FALSE;
	}
	return TRUE;
}

你可能感兴趣的:(Windows操作系统)