天天看點

VC:vista(x86)以管理者身份運作程式

在exe的工程中找manifest 中的最後一行之前加下面的代碼:進行編譯就可以了,

<ms_asmv3:trustInfo xmlns:ms_asmv3= "urn:schemas-microsoft-com:asm.v3 ">

<ms_asmv3:security xmlns:ms_asmv3= "urn:schemas-microsoft-com:asm.v3 ">

<requestedPrivileges>

<requestedExecutionLevel level= "requireAdministrator " uiAccess= "false "> </requestedExecutionLevel>

</requestedPrivileges>

</ms_asmv3:security>

</ms_asmv3:trustInfo>

不過這樣的exe隻能運作管理者權限下,如果以一般使用者登入,需要輸入管理者的帳号及密碼才行。一般都是不設requireAdministrator,而是設其為asInvoker。

不過在有些沒打更新檔的XP sp2的系統上,用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="test.exe.manifest"

type="win32"

/>

<trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">

<security>

<requestedExecutionLevel level="requireAdministrator" uiAccess="false"/>

</security>

</trustInfo>

</assembly>

該代碼添加到VC資源中即可, 添加方式:

添加一個“custom”資源,"resource type"填24,把資源ID改為1

如果隻有一個可執行檔案,也可以通過以下方法添加:

mt.exe -manifest e4nmgr.exe.manifest -outputresource:e4nmgr.exe;1

比如我把 D:\BitSpirit\BitSpirit.exe 改為管理者權限

HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers

新增一個字元串鍵值:

名稱設定為“D:\BitSpirit\BitSpirit.exe”

數值資料設定為“RUNASADMIN”

繼續閱讀