win7下c#程序修改注冊表的權限問題


最近在做一個cs的項目,項目已經完成,后來發現不兼容windows7,經過一番整改,終於大功落成。現將心得體會寫在這里。
首先讀取注冊表要給用戶管理員得權限。exe在Vista或Win7下不以管理員權限運行,會被UAC(用戶帳戶控制)阻止訪問系統某些功能,如修改注冊表操作等;如何讓exe以管理員權限運行呢,方法有兩種,一個是直接修改exe屬性;另一個是在程序中加入MANIFEST資源,下面分別介紹。
1. 直接修改exe屬性:
1) 右擊“exe”,在彈出的菜單中選擇“屬性”,出現的界面如下圖:
 
 

 
2) 選擇“兼容性”項,並勾選“以管理員身份運行此程序”項即可。
2. 在程序中加入MANIFEST資源 C#:
?         打開Vs2008或vs2010工程,看在Properties下是否有app.manifest這個文件;如沒有,右擊工程在菜單中選擇“屬性”,出現界面如下:

 
 
?         選中“安全性”,在界面中勾選“啟用ClickOnce安全設置”后,在Properties下就有自動生成app.manifest文件。
打開app.manifest文件,在<security>下加入
<requestedPrivileges>//刪掉xmlns="urn:schemas-microsoft-com:asm.v3"
         <requestedExecutionLevel level="requireAdministrator" cess="false"/>
       </requestedPrivileges>,重新編譯即可,


免責聲明!

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



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