最近在做一個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>,重新編譯即可,
