今天遇见一个win7下程序运行权限问题(需要对目录下文件有读写权限):网上google下得到解决方案有,现记录下:
一:
windows 7和vista提高的系统的安全性,同时需要明确指定“以管理员身份运行”才可赋予被运行软件比较高级的权限,比如访问注册表等。否则,当以普通身份运行的程序需要访问较高级的系统资源时,将会抛出异常。
如何让程序在启动时,自动要求“管理员”权限了,我们只需要修改app.manifest文件中的配置项即可。
app.manifest文件默认是不存在的,我们可以通过以下操作来自动添加该文件。
(1)进入项目属性页。
(2)选择“安全性”栏目。
(3)将“启用ClickOnce安全设置”勾选上。
现在,在Properties目录下就自动生成了app.manifest文件,打开该文件,将trustInfo/security/requestedPrivileges节点的requestedExecutionLevel的level的值修改为requireAdministrator即可。如下所示:
<
requestedPrivileges xmlns
=
"
urn:schemas-microsoft-com:asm.v3
"
>
< requestedExecutionLevel level = " requireAdministrator " uiAccess = " false " />
</ requestedPrivileges >
< requestedExecutionLevel level = " requireAdministrator " uiAccess = " false " />
</ requestedPrivileges >
记住,如果不需要ClickOnce,可以回到项目属性页将“启用ClickOnce安全设置”不勾选。
接下来,重新编译你的程序就OK了。
二:
可以把文件的安装路径默认在非系统目录下,如d:\sorftwarename\等。或者酱程序和读写数据分开,读写数据文件放在我的文档下等,避开文件访问读写权限,避开program files目录。像google德Chrome就是文件直接默认(不能改动)安装在AppData下。
本文转自 破狼 51CTO博客,原文链接:http://blog.51cto.com/whitewolfblog/835104,如需转载请自行联系原作者