怎么提注册表的操作权限
如何提注册表的操作权限?
大家好
我最近在捯饬注册表,碰到一个问题,特来请教:
我用C++写了一个程序,修改注册表中的某些项,可是在运行的时候却无法修改成功,在注册表下手动修改的时候提示拒绝访问。请问大家有什么办法在我写的程序中提升权限让我能操作这个表项么?谢谢。
PS:我已经改了manifest文件中的level,改成了“requireAdministrator”。
------解决方案--------------------
开启/关闭权限的函数:
大家好
我最近在捯饬注册表,碰到一个问题,特来请教:
我用C++写了一个程序,修改注册表中的某些项,可是在运行的时候却无法修改成功,在注册表下手动修改的时候提示拒绝访问。请问大家有什么办法在我写的程序中提升权限让我能操作这个表项么?谢谢。
PS:我已经改了manifest文件中的level,改成了“requireAdministrator”。
------解决方案--------------------
开启/关闭权限的函数:
- C/C++ code
BOOL EnablePrivilege(PCTSTR pszPrivName, BOOL bEnable) { BOOL bOk = FALSE; HANDLE hToken; if (::OpenProcessToken(GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES, &hToken)) { TOKEN_PRIVILEGES tp = { 1 }; ::LookupPrivilegeValue(NULL, pszPrivName, &tp.Privileges[0].Luid); tp.Privileges[0].Attributes = bEnable ? SE_PRIVILEGE_ENABLED : 0; ::AdjustTokenPrivileges(hToken, FALSE, &tp, sizeof(tp), NULL, NULL); bOk = (GetLastError() == ERROR_SUCCESS); ::CloseHandle(hToken); } return bOk; }