Windows系统开机自动运行程序、批处理、脚本等的方法。

系统启动文件夹

将程序或程序快捷方式放到系统“启动”文件夹下,在进入到系统桌面后程序将自动启动。

方法/步骤:

  1. 打开我的电脑, 在地址栏输入:“C:ProgramDataMicrosoftWindowsStart MenuPrograms”;
  2. 然后点击回车键,定位到了Programs文件夹,也就是程序文件夹。查找看里面是否有个“启动”文件夹,双击鼠标进入到“启动”文件夹;
  3. 把你需要开机启动的程序、程序快捷方式、批处理或脚本拖拽或复制到该文件夹(“启动”文件夹)下,注意杀毒软件出现的拦截。如果是Windows 8以上操作系统,可能会出现请求管理员权限对话框,选择“继续”申请管理员权限即可;
  4. 重启电脑,测试效果。

此方法适用于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;
}

标签: 开机自启, 自动运行, 自动启动

添加新评论