关于软件开发中兼容win7注册表的解决方案
2014-06-14 21:05
363 查看
关于软件开发中兼容win7注册表的解决方案
编写人:CC阿爸
2014-3-14
l 近来在开发一winform程序时,发现在xp 系统访问注册表一切正常。可偏这个时候,微软又提醒大家。Xp今年的4月份会寿终正寝了。因此必需要考虑到对win7的兼容。
Win7在访问时,返回的注册表值,就是与实际看到的不一致。
经过在网上搜索部分解决方案,以下这位同学的解决方案才是正解,终于找到相关解决办法。
首先读取注册表要给用户管理员得权限。exe在Vista或Win7下不以管理员权限运行,会被UAC(用户帐户控制)阻止访问系统某些功能,如修改注册表操作等;如何让exe以管理员权限运行呢,方法有两种,一个是直接修改exe属性;另一个是在程序中加入MANIFEST资源,下面分别介绍。
1. 直接修改exe属性:
1) 右击“exe”,在弹出的菜单中选择“属性”,出现的界面如下图:
<?xml version="1.0" encoding="utf-8"?>
6) <asmv1:assembly manifestVersion="1.0" xmlns="urn:schemas-microsoft-com:asm.v1" xmlns:asmv1="urn:schemas-microsoft-com:asm.v1" xmlns:asmv2="urn:schemas-microsoft-com:asm.v2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
7) <assemblyIdentity version="1.0.0.0" name="MyApplication.app" />
8) <trustInfo xmlns="urn:schemas-microsoft-com:asm.v2">
9) <security>
10) <requestedPrivileges xmlns="urn:schemas-microsoft-com:asm.v3">
11) <!-- UAC 清单选项
12) 如果希望更改 Windows 用户帐户控制级别,请用以下节点之一替换
13) requestedExecutionLevel 节点。
14)
15) <requestedExecutionLevel level="asInvoker" uiAccess="false" />
16) <requestedExecutionLevel level="requireAdministrator" uiAccess="false" />
17) <requestedExecutionLevel level="highestAvailable" uiAccess="false" />
18)
19) 如果您希望利用文件和注册表虚拟化提供
20) 向后兼容性,请删除 requestedExecutionLevel 节点。
21) -->
22) <!--<requestedExecutionLevel level="asInvoker" uiAccess="false" />-->
23) <requestedPrivileges>
24) <requestedExecutionLevel level="requireAdministrator" cess="false"/>
25) </requestedPrivileges>
26)
27) </requestedPrivileges>
28) <applicationRequestMinimum>
29) <PermissionSet class="System.Security.PermissionSet" version="1" Unrestricted="true" ID="Custom" SameSite="site" />
30) <defaultAssemblyRequest permissionSetReference="Custom" />
31) </applicationRequestMinimum>
32) </security>
33) </trustInfo>
34) </asmv1:assembly>View Code
编写人:CC阿爸
2014-3-14
l 近来在开发一winform程序时,发现在xp 系统访问注册表一切正常。可偏这个时候,微软又提醒大家。Xp今年的4月份会寿终正寝了。因此必需要考虑到对win7的兼容。
Win7在访问时,返回的注册表值,就是与实际看到的不一致。
经过在网上搜索部分解决方案,以下这位同学的解决方案才是正解,终于找到相关解决办法。
首先读取注册表要给用户管理员得权限。exe在Vista或Win7下不以管理员权限运行,会被UAC(用户帐户控制)阻止访问系统某些功能,如修改注册表操作等;如何让exe以管理员权限运行呢,方法有两种,一个是直接修改exe属性;另一个是在程序中加入MANIFEST资源,下面分别介绍。
1. 直接修改exe属性:
1) 右击“exe”,在弹出的菜单中选择“属性”,出现的界面如下图:
<?xml version="1.0" encoding="utf-8"?>
6) <asmv1:assembly manifestVersion="1.0" xmlns="urn:schemas-microsoft-com:asm.v1" xmlns:asmv1="urn:schemas-microsoft-com:asm.v1" xmlns:asmv2="urn:schemas-microsoft-com:asm.v2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
7) <assemblyIdentity version="1.0.0.0" name="MyApplication.app" />
8) <trustInfo xmlns="urn:schemas-microsoft-com:asm.v2">
9) <security>
10) <requestedPrivileges xmlns="urn:schemas-microsoft-com:asm.v3">
11) <!-- UAC 清单选项
12) 如果希望更改 Windows 用户帐户控制级别,请用以下节点之一替换
13) requestedExecutionLevel 节点。
14)
15) <requestedExecutionLevel level="asInvoker" uiAccess="false" />
16) <requestedExecutionLevel level="requireAdministrator" uiAccess="false" />
17) <requestedExecutionLevel level="highestAvailable" uiAccess="false" />
18)
19) 如果您希望利用文件和注册表虚拟化提供
20) 向后兼容性,请删除 requestedExecutionLevel 节点。
21) -->
22) <!--<requestedExecutionLevel level="asInvoker" uiAccess="false" />-->
23) <requestedPrivileges>
24) <requestedExecutionLevel level="requireAdministrator" cess="false"/>
25) </requestedPrivileges>
26)
27) </requestedPrivileges>
28) <applicationRequestMinimum>
29) <PermissionSet class="System.Security.PermissionSet" version="1" Unrestricted="true" ID="Custom" SameSite="site" />
30) <defaultAssemblyRequest permissionSetReference="Custom" />
31) </applicationRequestMinimum>
32) </security>
33) </trustInfo>
34) </asmv1:assembly>View Code
相关文章推荐
- 关于软件开发中兼容win7注册表的若干思考
- 关于软件开发中兼容win7注册表的若干思考
- VC连接mysql数据库开发的与64位win7不兼容解决方案
- 软件开发中关于向后兼容的理解
- 关于软件开发过程中的版本兼容问题
- VC连接mysql数据库开发的与64位win7不兼容解决方案
- 【软件开发】关于Rundll32.exe调试动态库(.dll)时提示“找不到指定的模块”的解决方案
- 关于软件开发的知识产权的看法
- 关于软件开发的一些理念.
- 关于以“安徽.NET俱乐部”为基础成立“安徽软件开发私活联盟”的倡仪(2005-8-20)
- 下一代的软件开发方法:关于面向工作流的图形化企业管理软件开发
- 每一个软件开发人员绝对必须掌握的关于 Unicode 和字符集的最基础的知识
- 一项关于开源软件开发人员的有趣调查
- 关于敏捷软件开发
- 恶魔和梦魇的私语------- 关于软件开发的务虚主义对话(1)
- 关于对日软件开发
- 关于测试软件开发
- 关于《我从教育网收集了200多篇关于组态软件和人机界面软件开发、应用的文章,想要的朋友给我发邮件呀》的申明
- 关于面向构件和EOS的一些思考-软件开发和传统行业应该怎么对比
- [转帖]关于开发系统后门软件的几点思路