| 建荣's profile空谷清音PhotosBlogLists | Help |
|
October, 2006 vista下程序的权限在win2000/xp下,大家对注册表的操作一般情况下都会成功,但是在vista下,即使你以administrator登录,也不能成功的操作。从微软的官方网站上,可以了解到vista对于权限的控制更加的严格了,administrator用户登录,不代表所有的程序都拥有administrator的权限(http://www.microsoft.com/technet/windowsvista/security/uac.mspx)。
那么,如何在vista下,让自己的程序能够对注册表进行正常的操作呢?第一个方法就是对程序文件的属性进行设置,把run this program as administrator勾上。第二个方法就需要对自己的程序作一些修改了:为自己的程序添加mainfest:
<requestedExecutionLevel
level="asInvoker|highestAvailable|requireAdministrator" uiAccess="true|false"/> 按照这篇文章上介绍的,给程序加入了mainfest:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<assemblyIdentity version="1.0.0.0"
processorArchitecture="X86"
name="IsUserAdmin"
type="win32"/>
<description>Description of your application</description>
<!-- Identify the application security requirements. -->
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
<security>
<requestedPrivileges>
<requestedExecutionLevel
level="requireAdministrator"
uiAccess="false"/>
</requestedPrivileges>
</security>
</trustInfo>
</assembly>
但是在实际的结果中,发现还是不行,这回程序彻底不能被运行了。在此翻阅msdn,找到了一篇帖子:http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=463884&SiteID=1 其中对于这个问题进行了讨论,把xmlns的v3修改为v2即可,不知道微软的官方网站是否会给出这方面的说明呢。
|
|
|