C++ UAC 提权 以一个管理员身份运行程序
这里是我编译的和一个测试Demo:http://pan.baidu.com/s/1qWNgC6C
大家如果看我下边的不是很清楚,可以下载这个具体工程;
群:103197177 C++进阶讨论;欢迎喜欢编程朋友加入进来一起讨论学习;
bool GetPrivilege(void) { // 提权成功 记得关闭该进程; CreateEvent(NULL, FALSE, FALSE, _T("{29544E05-024F-4BC1-A272-452DBC8E17A4}")); if (ERROR_SUCCESS != GetLastError()) { return false; } else { TCHAR strPath[MAX_PATH] = { 0 }; HMODULE hModule = NULL; GetModuleFileName(hModule, strPath, MAX_PATH); SHELLEXECUTEINFO sei = { sizeof(SHELLEXECUTEINFO) }; sei.lpVerb = TEXT("runas"); sei.lpFile = strPath; sei.nShow = SW_SHOWNORMAL; if (!ShellExecuteEx(&sei)) { DWORD dwStatus = GetLastError(); if (dwStatus == ERROR_CANCELLED) { return false; } else if (dwStatus == ERROR_FILE_NOT_FOUND) { return false; } } } Sleep(100); // 防止退出的太早 return true; }