通过注册表实现开机自启动

Posted ndyxb

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了通过注册表实现开机自启动相关的知识,希望对你有一定的参考价值。

前言:

  实现开机自启动的途径和方式有很多种,其中修改注册表方式应用最为广泛。注册表相当是操作系统的数据库,记录着系统中方方面面的数据,其中也不乏直接或间接导致开机自启动的数据。

实现原理:

  windows提供了专门的开机自启动注册表。在每次开机完成后,它都会在这个注册表键下遍历键值,以获取键值中的程序路径,并创建进程启动程序。所以,只需要在这个注册表键下添加想要设置自启动程序的路径就可以了。其中常见的两个路径,分别是 HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionRun 与 HKEY_LOCAL_MACHINESoftwareMicrosoftWindowsCurrentVersionRun

  注意:要修改HKEY_LOCAL_MACHINE主键的注册表,这要求程序要有管理员权限。而修改HKEY_CURRENT_USER主键的注册表,只需要用户默认权限就可以实现

实现代码:

BOOL Reg_CurrentUser(char *lpszFileName, char *lpszValueName)
{
    // 默认权限
    HKEY hKey;
    // 打开注册表键
    if (ERROR_SUCCESS != ::RegOpenKeyEx(HKEY_CURRENT_USER, "Software\Microsoft\ Windows\ CurrentVersion\Run", 0, KEY_WRITE, &hKey))
    {
        ShowError("RegOpenKeyEx");
        return FALSE;
    }
    // 修改注册表值,实现开机自启动
    if (ERROR_SUCCESS != ::RegSetValueEx(hKey, lpszValueName, 0, REG_SZ, (BYTE *)lpszFileName, (1 + ::lstrlen(lpszFileName))))
    {
        ::RegCloseKey(hKey);
        ShowError("RegSetValueEx");
        return FALSE;
    }
    // 关闭注册表键
    ::RegCloseKey(hKey);

    return TRUE;
}

 

以上是关于通过注册表实现开机自启动的主要内容,如果未能解决你的问题,请参考以下文章

如何将程序添加到系统服务实现开机自启动

如何将程序添加到系统服务实现开机自启动

Android APP开机自启动基本方法

将绿色版Tomcat/Nginx注册成服务,实现开机自启动

如何将Nginx注册为系统服务,开机自启动。

有啥办法让XTU 开机自启动