Windows系统开机自动启动程序
Windows系统开机自动运行程序、批处理、脚本等的方法。
系统启动文件夹
将程序或程序快捷方式放到系统“启动”文件夹下,在进入到系统桌面后程序将自动启动。
方法/步骤:
- 打开我的电脑, 在地址栏输入:“C:ProgramDataMicrosoftWindowsStart MenuPrograms”;
- 然后点击回车键,定位到了Programs文件夹,也就是程序文件夹。查找看里面是否有个“启动”文件夹,双击鼠标进入到“启动”文件夹;
- 把你需要开机启动的程序、程序快捷方式、批处理或脚本拖拽或复制到该文件夹(“启动”文件夹)下,注意杀毒软件出现的拦截。如果是Windows 8以上操作系统,可能会出现请求管理员权限对话框,选择“继续”申请管理员权限即可;
- 重启电脑,测试效果。
此方法适用于Windows 7以上系统,Windows 7以下系统找到“启动”文件夹的路径即可适用。
修改注册表开机启动项
在注册表 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
路径下新建字符串值,键名可以填写程序名(键名随意填写),键值填写程序路径名。
C++语言实现修改注册表开机启动项的代码如下:
#define REG_AUTORUN _T("程序名称")
#define REG_AUTORUN_PATH _T("Software\\Microsoft\\Windows\\CurrentVersion\\Run")
// 将程序写入注册表的开机启动项
BOOL CRegHKeyEx::OnSetAutoRun(CString & strPath)
{
HKEY hKey;
// 打开注册表
LONG ret = ::RegOpenKeyEx(HKEY_LOCAL_MACHINE, REG_AUTORUN_PATH, NULL, KEY_ALL_ACCESS, &hKey);
if (ret != ERROR_SUCCESS)
{
// 打开注册表失败
return FALSE;
}
ret = RegSetValueEx(hKey, REG_AUTORUN, NULL, REG_SZ, (unsigned char*)(LPCTSTR)(strPath), strPath.GetLength()*2);
if (ret != ERROR_SUCCESS)
{
// 写入注册表失败
RegCloseKey(hKey);
return FALSE;
}
RegCloseKey(hKey);
return TRUE;
}
// 将此程序从注册表的开机启动项中移除
BOOL CRegHKeyEx::OnDeleteAutoRun()
{
HKEY hKey;
// 打开注册表
LONG ret = ::RegOpenKeyEx(HKEY_LOCAL_MACHINE, REG_AUTORUN_PATH, NULL, KEY_ALL_ACCESS, &hKey);
if (ret != ERROR_SUCCESS)
{
// 打开注册表失败
return FALSE;
}
if (ERROR_SUCCESS != ::RegDeleteValue(hKey, (LPCWSTR)REG_AUTORUN))
{
// 删除注册表键值失败
RegCloseKey(hKey);
return FALSE;
}
RegCloseKey(hKey);
return TRUE;
}