操作注册表

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
HKEY hKey;

//HEKY_LOCAL_MACHINESoftwareMicrosoftWindowsCurrentVersionRun
LSTATUS lRet = RegOpenKeyEx(HKEY_LOCAL_MACHINE,
L"Software\Microsoft\Windows\CurrentVersion\Run", 0, KEY_WRITE, &hKey);
if (lRet != ERROR_SUCCESS)
{
LPVOID message;
FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_IGNORE_INSERTS,
NULL, lRet, NULL, (LPTSTR)&message, 0, NULL);
MessageBox((LPCTSTR)message, L"ERROR", MB_OK | MB_ICONINFORMATION);
}
//新增一个值,名称随意命名,值为要开机运行的文件的完整路径
wstring appPath = getAppPath() + L"/videoHelper.exe";
lRet = RegSetValueEx(hKey,L"videoHelper",
0, REG_EXPAND_SZ, (const BYTE*)appPath.c_str(), appPath.size()*2);
if (lRet != ERROR_SUCCESS)
{
LPVOID message;
FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_IGNORE_INSERTS,
NULL, lRet, NULL, (LPTSTR)&message, 0, NULL);
MessageBox((LPCTSTR)message, L"ERROR", MB_OK | MB_ICONINFORMATION);
}
lRet = RegCloseKey(hKey);
if (lRet != ERROR_SUCCESS)
{
LPVOID message;
FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_IGNORE_INSERTS,
NULL, lRet, NULL, (LPTSTR)&message, 0, NULL);
MessageBox((LPCTSTR)message, L"ERROR", MB_OK | MB_ICONINFORMATION);
}