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;
}
相關文章
相關標籤/搜索