关于通过注册表设置程序自启动

系统对于32位程序这种注册表操作,都写在HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\\Microsoft\\Windows\\CurrentVersion\\Run里面去了

Win7和Win8的64位把32位程序和64位分开管理了

HKEY_LOCAL_MACHINE\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run这个目录是管理64位的

 

如果你是32位系统使用前一个注册表项

如果你是64位系统使用后一个注册表项


LONG result = RegOpenKeyExW(HKEY_LOCAL_MACHINE, L"Software\\Microsoft\\Windows\\CurrentVersion\\Run", 0, KEY_WRITE | KEY_WOW64_64KEY, &hKey);
 

 

void SetAutoStart()
{
    //把当前路径中的TTS播放程序YLYT_TTSPlayer.exe设置为开机自动启动
    TCHAR path[512];
    GetModuleFileName(NULL, path, sizeof(path));
    TCHAR* ptr = &path[lstrlen(path)];
    while (ptr > path&& *ptr != _T('\\')) ptr--;
    *ptr = 0;

    TCHAR DispatcherApp[1024];
    wsprintf(DispatcherApp, _T("%s\\TTSPlayer.exe"),  path);


    HKEY hKey;
    //LONG result = RegOpenKeyExW(HKEY_LOCAL_MACHINE, L"Software\\Microsoft\\Windows\\CurrentVersion\\Run", 0, KEY_WRITE, &hKey);
    LONG result = RegOpenKeyExW(HKEY_LOCAL_MACHINE, L"Software\\Microsoft\\Windows\\CurrentVersion\\Run", 0, KEY_WRITE | KEY_WOW64_64KEY, &hKey);
    if (result != ERROR_SUCCESS){
        RegCloseKey(hKey);
        mylog("开机自动启动设置失败[%d]!\n", result);
        return;
    }

    result = RegSetValueEx(hKey, L"TTSPlayer", NULL, REG_SZ, (CONST BYTE *)DispatcherApp, sizeof(TCHAR) * lstrlen (DispatcherApp)+1);
    if (result != ERROR_SUCCESS){
        //AfxMessageBox(_T("设置失败2!"));
        mylog("开机自动启动设置失败[%d]\n", result);
    }
    RegCloseKey(hKey);
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值