經過給程序裏嵌入manifest,使得程序運行時彈出UAC窗口

咱們知道,當一個程序須要權限運行時,須要右鍵點擊程序,而後使用管理員權限打開程序。另外,若是你用vc2008以上開發程序,能夠在工程裏選擇uac,在生成的程序裏,若是點擊運行程序會彈出須要管理員權限運行程序的窗口。html

 

如今能夠經過把manifest嵌入普通程序裏來達到這個效果。windows

如今說一下怎麼樣給一個普通的在單擊運行時不會彈出須要管理員權限的程序增長這個功能。app

 

一、假使這個普通程序名字爲myapp.exe。ui

如今在程序的目錄下編寫一個manifest文件,命名爲myapp.exe.manifest。spa

manifest文件以下:.net

 

[html]  view plain copy print ?
 
  1. <?xml version="1.0" encoding="UTF-8" standalone="yes"?>  
  2. <assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">  
  3. <assemblyIdentity  
  4.     version="1.0.0.0"  
  5.     processorArchitecture="X86"  
  6.     name="myapp.exe.manifest"  
  7.     type="win32"  
  8. />  
  9. <trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">  
  10.     <security>  
  11.         <requestedPrivileges>  
  12.             <requestedExecutionLevel level="requireAdministrator" uiAccess="false"/>  
  13.         </requestedPrivileges>  
  14.     </security>  
  15. </trustInfo>  
  16. </assembly>  


二、如今你點擊運行myapp.exe程序,就會彈出須要管理員權限才能夠運行的窗口了。xml

 

三、但咱們能夠不須要這個manifest文件,緣由是咱們能夠把這個menifest文件嵌入程序裏,從而在程序目錄下就不須要這個文件了。htm

在windows的系統盤目錄裏C:\Program Files\Microsoft SDKs\Windows\v7.0A\bin有個程序是mt.exe。blog

在控制檯下運行這個命令:mt.exe -manifest H:\myapp.exe.manifest -outputresource:H:\myapp.exe;1ip

以後咱們就能夠刪除這個myapp.exe.manifest文件了。

 

如今點擊你的程序,是否是會彈出了須要管理員權限的窗口了啊 :)

 

http://blog.csdn.net/fjb2080/article/details/7261861

相關文章
相關標籤/搜索