您的位置:首页 > 编程语言 > C#

C# 编程修改注册表 并立即生效

2010-12-29 15:07 495 查看
WinFrom 程序

近期遇到一个Sqlserver 2008评估版本到期的问题,解决这个问题的时候,需要在注册表 HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Microsoft SQL Server/100/ConfigurationState 下修改 CommonFiles 值为 3 ,如果 在运行 输入 regedit.exe ,直接改的话,可以, 但如果是想自己写一个程序来实话这个操作的话,就得按下面说的去做了

首先,新建一个winform项目,窗口设计如下



在后台
首先 引入 Microsoft.Win32 命名空间

然后 在button_click 事件中,写如下代码

//得到 基项 HKEY_LOCAL_MACHINE
RegistryKey key = Registry.LocalMachine;

//根据路径 获取 ConFigurationState 下的所有子键
RegistryKey key1 = key.CreateSubKey(@"SOFTWARE/Microsoft/Microsoft SQL Server/100/ConfigurationState");
//在ConfigurationState下 创建或者设置键 CommonFiles 的值为1
key1.SetValue("CommonFiles", 1);

//关闭子键对象
key1.Close();

----------------------------------------------------------------------------------------------------------------------------------------
总结下:winForm 编程修改注册表 共分四部
1.引入 Microsoft.Win32 ,利用RegistryKey 创建注册表基项 对象
2.获取指定路径下所有的子键对象
3.创建或设置键值
4.关闭子键对象

修改了注册表,让其立即生效,有三种方法
1.重新启动计算机
2.注销
3.在 任务管理器 进程 里 先结束下 explorer.exe,然后再新建 explorer.exe ,因为注册表是随着explorer.exe进程(资源管理器)的启动而启动的。但是有的系统的任务管理器中,在结束了explorer.exe,文件下找不到 “新建任务”,于是小生就写了一个批处理,完成了这一操作。

新建一文本,输入如下代码后,保存为 shuaxin.bat

@echo off
taskkill /im explorer.exe /f
ping -n 2 127.0.0.1 >nul
start c:/windows/explorer.exe

这样,只需要 双击这个文件,就会 完成 explorer.exe进程的关闭和重启 的操作
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: