方法1.1:修改编译器设置(VS)
-
项目属性 → 链接器 → 清单文件 → UAC执行级别 → 选择
requireAdministrator
方法1.2:在代码中请求管理员权限
#include <windows.h>
#include <shellapi.h>
bool IsRunningAsAdmin() {
BOOL isAdmin = FALSE;
PSID adminGroup = NULL;
SID_IDENTIFIER_AUTHORITY ntAuthority = SECURITY_NT_AUTHORITY;
if (AllocateAndInitializeSid(&ntAuthority, 2, SECURITY_BUILTIN_DOMAIN_RID,
DOMAIN_ALIAS_RID_ADMINS, 0, 0, 0, 0, 0, 0, &adminGroup)) {
if (!CheckTokenMembership(NULL, adminGroup, &isAdmin)) {
isAdmin = FALSE;
}
FreeSid(adminGroup);
}
return isAdmin;
}
void RequestAdminPrivileges() {
if (!IsRunningAsAdmin()) {
WCHAR modulePath[MAX_PATH];
GetModuleFileNameW(NULL, modulePath, MAX_PATH);
ShellExecuteW(NULL, L"runas", modulePath, NULL, NULL, SW_SHOW);
ExitProcess(0);
}
}
// 在main函数开始调用
int main() {
RequestAdminPrivileges();
// 你的代码...
}

770

被折叠的 条评论
为什么被折叠?



