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"win7管理员身份运行
<requestedExecutionLevel level="requireAdministrator" cess="false"/>
</requestedPrivileges>,重新编译即可,
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论