在执行某些代码时(比如修改系统敏感文件)需要管理员权限。很多博客中关于申请管理员权限的函数在执行后会出现两个窗口,其中一个进程没有管理员权限。据体解决方案是关掉没有管理员权限的进程,可使用exit()函数实现。代码如下:
bool GetPrivilege()// 提权
{
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 (dwSta