以下代码使自身可以自启
#include <stdio.h>
#include <Windows.h>
int _tmain(int argc, _TCHAR* argv[])
{
HKEY hRoot = HKEY_LOCAL_MACHINE;
TCHAR *szSubKey = "Software\\Microsoft\\Windows\\CurrentVersion\\Run";
HKEY hKey;
DWORD dwDisposition = REG_OPENED_EXISTING_KEY;
LONG lRet = RegCreateKeyEx(
hRoot,
szSubKey,
0,
NULL,
REG_OPTION_NON_VOLATILE, KEY_ALL_ACCESS,
NULL,
&hKey,
&dwDisposition
);
if (lRet != ERROR_SUCCESS)
{
return 0;
}
// 获得程序自身文件名
TCHAR szModule[MAX_PATH];
GetModuleFileName(NULL, szModule, MAX_PATH);
// 设置注册表
lRet = RegSetValueEx(
hKey,
"SelfRun",
0,
REG_SZ,
(BYTE *)szModule,
strlen(szModule)
);
if (lRet == ERROR_SUCCESS)
{
printf(" self run success \n ");
}
RegCloseKey(hKey);
return 0;
}