要实现开机自动运行,要用到两个操作注册表的函数:RegOpenKeyEx()和RegSetValueEx()。前者用于打开注册表的键,后者则为打开的键设置键值。
函数的详细用法可以查msdn哈~~
示例代码如下:
BOOL SetAutoRun(HWND hwnd)//开机自动运行
{
//得到程序本身路径
TCHAR sthPath[MAX_PATH];
GetModuleFileName(NULL, sthPath, MAX_PATH);
//MessageBox(NULL, sthPath, "path", MB_OK);
TCHAR str[MAX_PATH];
HKEY hRegKey;
BOOL bResult;
lstrcpy(str, "Software\\Microsoft\\Windows\\CurrentVersion\\Run");
if(RegOpenKeyEx(HKEY_LOCAL_MACHINE, str, 0, KEY_ALL_ACCESS, &hRegKey) != ERROR_SUCCESS)
bResult = FALSE;
else
{
if(RegSetValueEx(hRegKey, str, 0, REG_SZ, (BYTE*)sthPath, strlen(sthPath) + 1) != ERROR_SUCCESS)
bResult = FALSE;
else
{
//MessageBox(NULL, "OK", "", MB_OK);
bResult = TRUE;
RegCloseKey(hRegKey);
}
}
return bResult;
}