使程序以管理員權限運行(C++)




來源網站: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);
}



下面是比較明了的代碼,來自評論

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);  
  
} 
strApp是應用程序的路徑idd我傳的是1,但好像傳幾都沒問題


手動修改程序以管理員身份運行

 來源網站:http://blog.csdn.net/zhangyulin54321/article/details/8802023


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM