我们平时都是在xp开发比较多...不过现在很多开发人员也在win7下开发了。

下面是在 LocalMachine下的 一下注册表操作 ,就不详说了

private static void DeleteRegistry(string name)
{
string[] aimnames;
RegistryKey hkml = Registry.LocalMachine;
RegistryKey software = hkml.OpenSubKey("SOFTWARE", true);
RegistryKey aimdir = software.OpenSubKey("Microsoftss", true);
aimnames = aimdir.GetSubKeyNames();
foreach (string aimKey in aimnames)
{
if (aimKey == name)during-pregnancy
aimdir.DeleteSubKeyTree(name);
}
}

private static string GetData(string name)
{
string registData;
RegistryKey hkml = Registry.LocalMachine;
RegistryKey software = hkml.OpenSubKey("SOFTWARE", true);
RegistryKey aimdir = software.OpenSubKey("Microsoftss", true);
registData = aimdir.GetValue(name).ToString();
return registData;
}

private static void WriteValue(string name, string tovalue)
{
RegistryKey hklm = Registry.LocalMachine;
RegistryKey software = hklm.OpenSubKey("SOFTWARE", true);
RegistryKey aimdir = software.CreateSubKey("Microsoftss");
aimdir.SetValue(name, tovalue);
}

private static bool IsExit(string name)
{
bool _exit = false;android中记录读取配置信息
string[] subkeyNames;
RegistryKey hkml = Registry.LocalMachine;
RegistryKey software = hkml.OpenSubKey("SOFTWARE", true);
RegistryKey aimdir = software.OpenSubKey("Microsoftss", true);
subkeyNames = aimdir.GetValueNames();
foreach (string keyName in subkeyNames)
{
if (keyName == name)
{
_exit = true;
return _exit;
}
}
return _exit;
}

比如,当我们在xp系统下 软件执行Writevalue("版本号","v1.0.0.1"),一切都ok! 然后乐的就抛给了客户...没有思考。

一天客户换了win7系统 ,运了软件了。客户拉着42号鞋子的脸说,怎么软件在win7不能运行了....。问题就是上面开头说的了。

解决方法是有地....

这里列举几种.

第一种、教教客户、或者技术服务人员就好了。这个方法不需要修改我们的代码这是好处之一。只要, 点击.exe 右键

,在弹出的菜单中选择【属性】, 选择【兼容性】项,并勾选【以管理员身份运行此程序】就ok了。简单吧

第二种、也算简单,不过我们就要重新生成软件了。首先、在程序中加入MANIFEST资源,右击工程在菜单->【属性】->【安全性】,在界面中勾选【启用ClickOnce安全设置】,在项目的Properties下就有自动生成app.manifest文件。

文件内容如下:

<?xml version="1.0" encoding="utf-8"?>
< 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">
< assemblyIdentity version="1.0.0.0" name="MyApplication.app" />
< trustInfo xmlns="urn:schemas-microsoft-com:asm.v2">
< security>
< requestedPrivileges xmlns="urn:schemas-microsoft-com:asm.v3">
< !-- UAC 清单选项
如果希望更改 Windows 用户帐户控制级别,请用以下节点之一替换
requestedExecutionLevel 节点。

<requestedExecutionLevel level="asInvoker" uiAccess="false" />
< requestedExecutionLevel level="requireAdministrator" uiAccess="false" />
<requestedExecutionLevel level="highestAvailable" uiAccess="false" />

如果您希望利用文件和注册表虚拟化提供
向后兼容性,请删除 requestedExecutionLevel 节点。
-->
<requestedExecutionLevel level="asInvoker" uiAccess="false" />
< /requestedPrivileges>
< applicationRequestMinimum>
< defaultAssemblyRequest permissionSetReference="Custom" />
< PermissionSet class="System.Security.PermissionSet" version="1" Unrestricted="true" ID="Custom" SameSite="site" />
< /applicationRequestMinimum>
< /security>
< /trustInfo>
< /asmv1:assembly>

把 <requestedExecutionLevel level="asInvoker" uiAccess="false" /> 的 asInvoker 改为"requireAdministrator"。重新编译一下就ok了。

看到这个了吧!

这就是UAC(用户帐户控制)了

<!-- UAC 清单选项如果希望更改 Windows 用户帐户控制级别,请用以下节点之一替换 requestedExecutionLevel 节点。<requestedExecutionLevel  level="asInvoker" uiAccess="false" /><span style="color: #ff0000;"><strong> <requestedExecutionLevel  level="requireAdministrator" uiAccess="false" /></strong></span><requestedExecutionLevel  level="highestAvailable" uiAccess="false" />如果您希望利用文件和注册表虚拟化提供向后兼容性,请删除 requestedExecutionLevel 节点。-->

还有其他的方法。不过上面两种比较简单...。

win7 操作注册表相关推荐

  1. VC 32位(或64位)win7操作系统的注册表操作

    *.bat文件: @echo  "Win7系统下->右键->以管理员权限运行" rem 切换到当前bat文件所在目录 cd /d %~dp0  pause rem 杀死 ...

  2. win7系统注册表开机启动项如何打开?

    在运行窗口输入MSConfig命令不仅可以打开开机启动项,也能使用第三方工具.注册表查看开机启动项,注册表看到的启动项比较准确.而且使用注册表编辑开机启动项以更好的杜绝病毒自启动.一些win7的用户反 ...

  3. C#操作注册表全攻略

    相信每个人对注册表并不陌生,在运行里面输入"regedit"就可以打开注册表编辑器了.这东西对Windows系统来说可是比较重要的,也是病毒常常会光顾的地方,比如病毒和恶意软件常常 ...

  4. .NET操作注册表的封装类

    我写的一个在.NET下操作注册表的类. using System; using Microsoft.Win32; using System.Collections; namespace iUNS { ...

  5. 在Delphi程序中操作注册表

    32位Delphi程序中可利用TRegistry对象来存取注册表文件中的信息. 一.创建和释放TRegistry对象 1.创建TRegistry对象.为了操作注册表,要创建一个TRegistry对象: ...

  6. WinForm创建系统托盘以及操作注册表

    创建系统托盘菜单 1,创建一个contextMenu(cmnMain)菜单 2,添加一个NotifyIcon组件,设置ContextMenu属性为cmnMain 3,相应窗体改变事件(最小化等) pr ...

  7. Win64 驱动内核编程-6.内核里操作注册表

    内核里操作注册表 RING0 操作注册表和 RING3 的区别也不大,同样是"获得句柄->执行操作->关闭句柄"的模式,同样也只能使用内核 API 不能使用 WIN32 ...

  8. Win 驱动编程 - 内核里操作注册表

    一 概述 RING0 操作注册表和 RING3 的区别也不大,同样是"获得句柄->执行操作->关闭句柄"的模式,同样也只能使用内核 API 不能使用 WIN32API. ...

  9. 删除python的注册表_Python操作注册表详细步骤介绍

    Python操作注册表步骤之1.打开注册表 对注册表进行操作前,必须打开注册表.在Python中,可以使用以下两个函数:RegOpenKey和RegOpenKeyEx.其函数原型分别如下所示. Reg ...

最新文章

  1. 在Matlab中可视化3D体积图像数据,例如MRI图像
  2. 三招教你如何判断ERP软件是否适用
  3. 简单的社交网络分析(基于R)
  4. 数据库中Schema(模式)概念的理解
  5. S3C2440中断跳转分析
  6. matlab 过度曝光,MATLAB:补偿图像处理中的过度曝光/过饱和度
  7. anaconda如何装python_如何在已安装Python条件下,安装Anaconda,,并将原有Python添加到Anaconda中...
  8. jQuery插件(多级菜单)
  9. linux查看服务命令是什么,linux系统查看所有服务的命令
  10. SVN同步分支代码到主干
  11. 老王python培训视频教程完整版
  12. Metasploit之——社会工程学工具包
  13. PHP第三章到第七章
  14. 如何用LOTO示波器TDR方法测试电线长度?
  15. 数据立方体(Data Cube)
  16. gprs无线模块与服务器连接,GPRS 模块如何通信_GPRS 模块与服务器通信【原理解析】...
  17. 相思赋予谁 --知错
  18. PyTorch学习笔记(19) ——NIPS2019 PyTorch: An Imperative Style, High-Performance Deep Learning Library
  19. 12[红+绿+蓝+Alpha]
  20. Altium Designer生成Gerber文件的设置(嘉立创建议 )

热门文章

  1. 破解XP登录密码步骤
  2. 测试、Sqlit、ListView、对话框
  3. [高通SDM450][Android9.0]user版本uartlog常开
  4. 工业卡车(叉车)用充气轮胎行业研究及十四五规划分析报告
  5. react 之 umi(乌米)--入门介绍
  6. 计算机改错误的是什么意思,百度百科修改原因不正确是什么
  7. Python实现trim函数
  8. 计算机类扬大好还是苏州科技大学好,江苏省高校“大比拼”,扬州大学和苏州科技大学,究竟谁更胜一筹...
  9. too much recursion
  10. 解决yy会员官网无法正常登入及谷歌浏览器不显示http前缀问题