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

Unable to create a new registry after a certain point in the structure

本文关键字:创建 注册表 之后 结构      更新时间:2023-10-16

嗨,

我目前正在尝试创建一个应用程序,该应用程序可以禁用/启用 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/软件/Microsoft/Windows/CurrentVersion 或任何其他文件夹中创建此注册表,则一切正常。但是一旦我尝试输入策略,RegCreateKeyEx 函数就不会返回ERROR_SUCCES

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

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

[HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionPoliciesSystem]"DisableTaskMgr"=dword:00000001

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