无法在结构中的某个点之后创建新的注册表

时间:2015-04-28 14:23:43

标签: c++ registry

您好,

我目前正在尝试创建一个可以禁用/启用Windows 7中ctrl + alt + del菜单选项的应用程序。

这是一段代码,它是硬编码删除任务管理器:

HKEY hkey;
DWORD dwDisposition;
bool ok = false;
if (RegCreateKeyEx(HKEY_CURRENT_USER, TEXT("Software\\Microsoft\\Windows\\CurrentVersion\\Policies\\System"), 0, NULL, 0, KEY_WRITE, NULL, &hkey, &dwDisposition) == ERROR_SUCCESS) {
    DWORD rofl = 1;
    if (RegSetValueEx(hkey, TEXT("DisableTaskMgr"), 0, REG_DWORD, (PBYTE)&rofl, sizeof(DWORD)) == ERROR_SUCCESS){
        ok = true;
    }
    RegCloseKey(hkey);
}

例如,如果我尝试在 HKEY_CURRENT_USER / Software / Microsoft / Windows / CurrentVersion 或任何其他文件夹中创建此注册表,一切正常。但是一旦我尝试输入 Policies ,RegCreateKeyEx函数就不会返回 ERROR_SUCCES

因为,这是我需要放置该注册表以删除任务管理器选项的位置,我想知道为什么我不能访问该文件夹?

PS 如果我运行以下注册表文件,则会创建注册表并删除任务管理器选项,因此我猜我拥有必要的权限:

[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\System]"DisableTaskMgr"=dword:00000001

1 个答案:

答案 0 :(得分:1)

函数调用(带有这些确切的参数)返回代码5 ,代表权限不足(ERROR_ACCESS_DENIED),正如您自己猜到的那样。如果您还没有,请尝试以管理员身份运行该应用程序。