win7 操作注册表
我们平时都是在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 操作注册表相关推荐
- VC 32位(或64位)win7操作系统的注册表操作
*.bat文件: @echo "Win7系统下->右键->以管理员权限运行" rem 切换到当前bat文件所在目录 cd /d %~dp0 pause rem 杀死 ...
- win7系统注册表开机启动项如何打开?
在运行窗口输入MSConfig命令不仅可以打开开机启动项,也能使用第三方工具.注册表查看开机启动项,注册表看到的启动项比较准确.而且使用注册表编辑开机启动项以更好的杜绝病毒自启动.一些win7的用户反 ...
- C#操作注册表全攻略
相信每个人对注册表并不陌生,在运行里面输入"regedit"就可以打开注册表编辑器了.这东西对Windows系统来说可是比较重要的,也是病毒常常会光顾的地方,比如病毒和恶意软件常常 ...
- .NET操作注册表的封装类
我写的一个在.NET下操作注册表的类. using System; using Microsoft.Win32; using System.Collections; namespace iUNS { ...
- 在Delphi程序中操作注册表
32位Delphi程序中可利用TRegistry对象来存取注册表文件中的信息. 一.创建和释放TRegistry对象 1.创建TRegistry对象.为了操作注册表,要创建一个TRegistry对象: ...
- WinForm创建系统托盘以及操作注册表
创建系统托盘菜单 1,创建一个contextMenu(cmnMain)菜单 2,添加一个NotifyIcon组件,设置ContextMenu属性为cmnMain 3,相应窗体改变事件(最小化等) pr ...
- Win64 驱动内核编程-6.内核里操作注册表
内核里操作注册表 RING0 操作注册表和 RING3 的区别也不大,同样是"获得句柄->执行操作->关闭句柄"的模式,同样也只能使用内核 API 不能使用 WIN32 ...
- Win 驱动编程 - 内核里操作注册表
一 概述 RING0 操作注册表和 RING3 的区别也不大,同样是"获得句柄->执行操作->关闭句柄"的模式,同样也只能使用内核 API 不能使用 WIN32API. ...
- 删除python的注册表_Python操作注册表详细步骤介绍
Python操作注册表步骤之1.打开注册表 对注册表进行操作前,必须打开注册表.在Python中,可以使用以下两个函数:RegOpenKey和RegOpenKeyEx.其函数原型分别如下所示. Reg ...
最新文章
- 在Matlab中可视化3D体积图像数据,例如MRI图像
- 三招教你如何判断ERP软件是否适用
- 简单的社交网络分析(基于R)
- 数据库中Schema(模式)概念的理解
- S3C2440中断跳转分析
- matlab 过度曝光,MATLAB:补偿图像处理中的过度曝光/过饱和度
- anaconda如何装python_如何在已安装Python条件下,安装Anaconda,,并将原有Python添加到Anaconda中...
- jQuery插件(多级菜单)
- linux查看服务命令是什么,linux系统查看所有服务的命令
- SVN同步分支代码到主干
- 老王python培训视频教程完整版
- Metasploit之——社会工程学工具包
- PHP第三章到第七章
- 如何用LOTO示波器TDR方法测试电线长度?
- 数据立方体(Data Cube)
- gprs无线模块与服务器连接,GPRS 模块如何通信_GPRS 模块与服务器通信【原理解析】...
- 相思赋予谁 --知错
- PyTorch学习笔记(19) ——NIPS2019 PyTorch: An Imperative Style, High-Performance Deep Learning Library
- 12[红+绿+蓝+Alpha]
- Altium Designer生成Gerber文件的设置(嘉立创建议 )
热门文章
- 破解XP登录密码步骤
- 测试、Sqlit、ListView、对话框
- [高通SDM450][Android9.0]user版本uartlog常开
- 工业卡车(叉车)用充气轮胎行业研究及十四五规划分析报告
- react 之 umi(乌米)--入门介绍
- 计算机改错误的是什么意思,百度百科修改原因不正确是什么
- Python实现trim函数
- 计算机类扬大好还是苏州科技大学好,江苏省高校“大比拼”,扬州大学和苏州科技大学,究竟谁更胜一筹...
- too much recursion
- 解决yy会员官网无法正常登入及谷歌浏览器不显示http前缀问题