使程式以管理員許可權執行(C++)
阿新 • • 發佈:2019-02-13
來源網站:http://blog.csdn.net/jhui163/article/details/5873027
在看射手原始碼的時候,發現這個函式,是獲取管理員許可權的。但是不知道效果如果,先發上來大家測試下。
void GainAdminPrivileges(UINT idd, BOOL bWait){ CString strCmd; CString strApp; strCmd.Format (_T("/adminoption %d"), idd); CSVPToolBox svpTool; strApp = svpTool.GetPlayerPath(); SHELLEXECUTEINFO execinfo; memset(&execinfo, 0, sizeof(execinfo)); execinfo.lpFile = strApp; execinfo.cbSize = sizeof(execinfo); execinfo.lpVerb = _T("runas"); execinfo.fMask = SEE_MASK_NOCLOSEPROCESS; execinfo.nShow = SW_SHOWDEFAULT; execinfo.lpParameters = strCmd; ShellExecuteEx(&execinfo); if(bWait) WaitForSingleObject(execinfo.hProcess, INFINITE); }
下面是比較明瞭的程式碼,來自評論
strApp是應用程式的路徑idd我傳的是1,但好像傳幾都沒問題void GainAdminPrivileges(CString strApp,UINT idd){ CString strCmd; strCmd.Format (_T("/adminoption %d"), idd); SHELLEXECUTEINFO execinfo; memset(&execinfo, 0, sizeof(execinfo)); execinfo.lpFile = strApp; execinfo.cbSize = sizeof(execinfo); execinfo.lpVerb = _T("runas"); execinfo.fMask = SEE_MASK_NO_CONSOLE; execinfo.nShow = SW_SHOWDEFAULT; execinfo.lpParameters = strCmd; ShellExecuteEx(&execinfo); }
手動修改程式以管理員身份執行
來源網站:http://blog.csdn.net/zhangyulin54321/article/details/8802023