Win7下运行VC程序UAC权限问题
在Win7運行VC程序往往受到UAC權限不夠的問題,以下有幾個方法獲得管理員權限
1、通過代碼提升用戶權限,代碼如下:
BOOL UpgradeProcessPrivilege(HANDLE hProcess, LPCTSTR lpPrivilegeName )
{
?? HANDLE hToken = NULL;
?? if(OpenProcessToken(hProcess, TOKEN_ALL_ACCESS, &hToken))
? ?{
????? ?LUID Luid;
????? if(LookupPrivilegeValue(NULL, lpPrivilegeName, &Luid))
???? ?{
?????? ? TOKEN_PRIVILEGES tp;
?????? ? tp.PrivilegeCount = 1;
????? ?? tp.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED;
???? ??? tp.Privileges[0].Luid = Luid;
???? ??? return( AdjustTokenPrivileges(hToken, FALSE, &tp, 0, NULL, NULL) );?
??? ??}
? ?}
?? return FALSE;
}
// UpgradeProcessPrivilege(GetCurrentProcess(), SE_DEBUG_NAME);
這段CODE我沒有試過,但百度配額中有哥們說,在桌面上時就沒有問題,但是拷到其他地方就不行了。
2、導入manifest文件
如果你使用的是VC6或以上版本IDE,通過導入manifest文件解決
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
? <assemblyIdentity version="1.0.0.0"
???? processorArchitecture="X86"
???? name="IsUserAdmin"
???? type="win32"/>
? <description>Description of your application</description>
? <!-- Identify the application security requirements. -->
? <trustInfo xmlns="urn:schemas-microsoft-com:asm.v2">
??? <security>
????? <requestedPrivileges>
??????? <requestedExecutionLevel
????????? level="requireAdministrator"
????????? uiAccess="false"/>
??????? </requestedPrivileges>
?????? </security>
? </trustInfo>
</assembly>
注:此文件只要擴展名是.manifest文件名可以任意。文件內容的name屬性值也可以為任意。(VC6.0下經過測試)
把此文件"import"到資源文件中,資源類型為24,資源ID為1,注:經測試資源類型必須為24,資源ID也必須為1,
重新編輯即可,在windows7下該程序圖標有一個盾狀小圖標,雙擊運行會出現對話框要求提升為管理員權限。
?
3、如果是vs2008或者2010,設為連接器清單文件的uac執行級別
直接項目右鍵---屬性---連接器---清單文件---uac執行級別 選擇requireAdministrator 重新編譯
這樣你的程序直接運行就擁有管理員權限了。程序就會出現一個盾牌。
因本人使用VS2010,用這個方法編譯過好幾個程序,暫無發現問題
?
4、修改注冊表:
Windows Registry Editor Version 5.00
[HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers]
"C:\\Program Files\\win7test2.exe"="RUNASADMIN"
將上面的內容保存為.reg文件,基中把C:\\Program Files\\win7test2.exe改為真實環境的應用程序地址,雙擊運行即可。
這種方法后應用程序圖標不會有盾狀圖標,但雙擊運行仍然會彈出對話框要求提升權限。?
?
總結
以上是生活随笔為你收集整理的Win7下运行VC程序UAC权限问题的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: idea install 失败_idea
- 下一篇: 计算机mips是什么,在计算机术语中,什