通过注册表实现开机自启动
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; }
以上是关于通过注册表实现开机自启动的主要内容,如果未能解决你的问题,请参考以下文章