关于软件开发中兼容win7注册表的解决方案
关于软件开发中兼容win7注册表的解决方案
编写人:CC阿爸
2014-3-14
l 近来在开发一winform程序时,发现在xp 系统访问注册表一切正常。可偏这个时候,微软又提醒大家。Xp今年的4月份会寿终正寝了。因此必需要考虑到对win7的兼容。
Win7在访问时,返回的注册表值,就是与实际看到的不一致。
经过在网上搜索部分解决方案,以下这位同学的解决方案才是正解,终于找到相关解决办法。
首先读取注册表要给用户管理员得权限。exe在Vista或Win7下不以管理员权限运行,会被UAC(用户帐户控制)阻止访问系统某些功能,如修改注册表操作等;如何让exe以管理员权限运行呢,方法有两种,一个是直接修改exe属性;另一个是在程序中加入MANIFEST资源,下面分别介绍。
1. 直接修改exe属性:
1) 右击“exe”,在弹出的菜单中选择“属性”,出现的界面如下图:

2) 选择“兼容性”项,并勾选“以管理员身份运行此程序”项即可。
2. 在C#程序中加入MANIFEST资源,
1) 打开vs2008工程,看在Properties下是否有app.manifest这个文件;如没有,右击工程在菜单中选择“属性”,出现界面如下:



2) 选中“安全性”,在界面中勾选“启用ClickOnce安全设置”后,在Properties下就有自动生成app.manifest文件。
3) 打开app.manifest文件,在<security>下加入

<requestedExecutionLevel level="requireAdministrator" cess="false"/>
</requestedPrivileges>
4) 重新编译即可。全部代码如下:

) <requestedPrivileges xmlns=) <!-- UAC 清单选项
) 如果希望更改 Windows 用户帐户控制级别,请用以下节点之一替换
) requestedExecutionLevel 节点。
)
) <requestedExecutionLevel level=) <requestedExecutionLevel level=) <requestedExecutionLevel level=)
) 如果您希望利用文件和注册表虚拟化提供
) 向后兼容性,请删除 requestedExecutionLevel 节点。
) -->
) <!--<requestedExecutionLevel level=) <requestedPrivileges>
) <requestedExecutionLevel level=) </requestedPrivileges>
)
) </requestedPrivileges>
) <applicationRequestMinimum>
) <PermissionSet ) <defaultAssemblyRequest permissionSetReference=) </applicationRequestMinimum>
) </security>
) </trustInfo>
) </asmv1:assembly>
关于软件开发中兼容win7注册表的解决方案的更多相关文章
- SQL Server 2008 安装过程中遇到“性能计数器注册表配置单元一致性”检查失败 问题的解决方法
操作步骤: 1. 在 Microsoft Windows 2003 或 Windows XP 桌面上,依次单击"开始"."运行",然后在"打开&quo ...
- win7注册表损坏的修复方法
win7注册表损坏的修复方法 发布时间:2013-07-19 09:31发布者:系统城-小薇浏览数:3129 注册表是window系统中的一个非常重要的数据库,用于存储电脑系统和应用程序的设置信息,我 ...
- win7注册表常用设置
win7注册表常用设置 一.总结 一句话总结:regedit可以修改很多东西,电脑时间,背景,u盘读写,鼠标右键情况. 二.win7注册表常用设置 一. 秀出自我风格的屏幕保护画面 1.气泡屏幕保护 ...
- 软件开发中oracle查询常用方法总结
上次新霸哥和大家讲解了一些关于oracle的知识发现大家对oracle还是比较感兴趣的,下面新霸哥就大家比较关系的oracle中常用的查询有哪几种?做个和oracle相关的开发的朋友可能会知道答案,但 ...
- Atitit 软件开发中 瓦哈比派的核心含义以及修行方法以及对我们生活与工作中的指导意义
Atitit 软件开发中 瓦哈比派的核心含义以及修行方法以及对我们生活与工作中的指导意义 首先我们指明,任何一种行动以及教派修行方法都有他的多元化,只看到某一方面,就不能很好的评估利弊,适不适合自己使 ...
- 【原】webapp开发中兼容Android4.0以下版本的css hack
话说现在的手机型号越来越多,主要还是android和ios这2个巨头称霸了江湖,而他们自带的浏览器内核是webkit,那对于做移动网页开发的同事来说,一般只要做好webkit内核浏览器的展现效果就行了 ...
- 软件开发中的完整测试所包括的环节UT、IT、ST、UAT
软件开发中的完成测试环境所包括的环节包括:UT.IT.ST.UAT UT = Unit Test 单元测试 IT = System Integration Test 集成测试ST = System T ...
- 软件开发中 SQL SERVER 任务的用法
在软件开发中,经常性会用到定时任务.这个时候你可能会想到线程.但是事实中,线程方法比较麻烦.容易出错,资源竞争等问题,设计起来让你很头痛. 现在给大家提供一个新的思路,用SQL SERVER 的任务管 ...
- Atitit. 软件开发中的管理哲学--一个伟大的事业必然是过程导向为主 过程导向 vs 结果导向
Atitit. 软件开发中的管理哲学--一个伟大的事业必然是过程导向为主 过程导向 vs 结果导向 1. 一个伟大的事业必然是过程导向为主 1 1.1. 过程的执行情况(有明确的执行手册及标准) ...
随机推荐
- [ActionScript 3.0] AS3 双A字模型
package { import caurina.transitions.Tweener; import flash.display.Sprite; import flash.events.Mouse ...
- lassen项目启动
1.将代码从svn下载下来 2.在下载目录打开命令窗口 shift+鼠标右键 3.mvn clean install mvn eclipse:clean mvn eclipse:eclipse
- inno setup 在卸载时如果想保留文件 使用uninsneveruninstall
一般来说,inno只卸载你安装的文件,自动生成如Thumb.db(缩略图)等文件,卸载程序是不会删除这些的,此时你希望整个安装目录删除则可用你说的方法删除.若想保留某些文件,则必须在[File]段中拷 ...
- [SQL] cast 与 convert 都在什么情况下使用
CONVERT(data_type,expression[,style]) 说明: 此样式一般在时间类型(datetime,smalldatetime)与字符串类型(nchar,nvarchar,ch ...
- gitlab和Django实现push自动更新
1.设置webhook gitlab->setting->webhook:http://121.143.191.166:7000?token=23028-b396-12e5-9912-ba ...
- Oracle 10046 event详解-转载
0046事件概述Oracle的10046事件,可以跟踪应用程序所执行的SQL语句,并且得到其解析次数.执行次数,CPU使用时间等信息.这对我们分析.定位数据库性能问题是非常有用的. 10046 eve ...
- win10 TortoiseSVN 部分图标不显示
原因:https://msdn.microsoft.com/en-us/library/cc144123(VS.85).aspx Note The number of different icon ...
- mysql 使用说明-3
3.4 Getting Information About Databases and Tables 获取数据库和表格的信息 如果你忘记了数据库或者表格的名字怎么办?或者给定的表格的结构怎么办?(例如 ...
- NoCache
<META HTTP-EQUIV="Pragma" CONTENT="no-cache"> <META HTTP-EQUIV="Ca ...
- jBox 弹出窗口中焦点设置问题
jBox 是一个不错的组件库,可以用来比较简单地弹出窗口. 我希望在 jBox 弹出窗口之后,自动将焦点设置到子窗口的某个输入框中,可是发现并不容易. 在 jBox 2.3 中,提供了如下的增强. ...