高分求助!用C++编程实现改注册表

来源:百度知道 编辑:UC知道 时间:2024/05/28 10:22:55
我想用C++变成实现 在注册表中HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\
句柄下搜索某个子建中有名为 debugger 的值 如果有 将其删除 请问如何实现?

要调用Windows API的RegOpenKeyEx(), RegSetValueEx(), RegSetValueEx()等函数。首先要确认你的C编译器支持调用Windows API.
举例:
要自动运行"D:\Myprog\MyProgram.exe", 修改注册表,在
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run
中加一项:
RunMyProg="D:\Myprog\MyProgram.exe"

#include <windows.h>

static char subkey[] = "Software\\Microsoft\\Windows\\CurrentVersion\\Run";
static char vname[] = "RunMyProg";
static char exefile[] = "D:\\Myprog\\MyProgram.exe";
ULONG dType = REG_SZ, len = 0;
HKEY hKey;
RegOpenKeyEx(HKEY_LOCAL_MACHINE,subkey,0,KEY_SET_VALUE|KEY_QUERY_VALUE,&hKey);//打开。
if (RegQueryValueEx(hKey, vname, 0, &dType, NULL, &len)) { //如果没有RunMyProg,
RegSetValueEx(hKey, vname, 0, REG_SZ, exefile, strlen(exefile)+1); //就加上。
}
RegCloseKey(hKey); //关闭。

在网上搜索下 re