C++ 开机自启动程序

转自:https://blog.csdn.net/weixin_43178927/article/details/82683063

原理:
windows 开机会检索注册表,其中有一项

HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run
是微软 定义的开机程序检索表
利用windows api 函数修改该注册表即可实现开机启动程序

 

我们手动实现一下:
1、点击开始——运行,输入regedit打开注册表
2、找到“HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run”打开后,
点右键 新建-字符串值,输入任意名称,然后右击该名称-修改,
在“数值数据”栏输入你要自动启动的应用程序文件所在的完整路径的文件名
 

需要以下头文件

	#include 
	#include 

函数如下:

void HKRunator(char *programName)   //程序名称(**全路径**)
{
	HKEY hkey = NULL;
	DWORD rc;

	rc = RegCreateKeyEx(HKEY_LOCAL_MACHINE,                      //创建一个注册表项,如果有则打开该注册表项
		"SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run",
		0,
		NULL,
		REG_OPTION_NON_VOLATILE,
		KEY_WOW64_64KEY | KEY_ALL_ACCESS,    //部分windows系统编译该行会报错, 删掉 “”KEY_WOW64_64KEY | “” 即可
		NULL,
		&hkey,
		NULL);

	if (rc == ERROR_SUCCESS)   
	{
		rc = RegSetValueEx(hkey, 
			"UStealer",
			0,
			REG_SZ,
			(const BYTE *)programName,
			strlen(programName));
		if (rc == ERROR_SUCCESS)
		{
			RegCloseKey(hkey);
		}
	}
}

 

你可能感兴趣的:(C++,开机自启)