C# 操作注册表WindowsRegistry
2017-08-15 11:51
495 查看
using System; using System.Collections.Generic; using System.Linq; using System.Text; using Microsoft.Win32; namespace BugsBox.Application.Core { public class WindowsRegistry { const string REGISTRY_ITEM_PATH = "software\\pharmacyinst"; /// <summary> /// 创建注册表项 /// </summary> /// <param name="registryItemPath"></param> public static void CreateRegistry(string registryItemPath = REGISTRY_ITEM_PATH) { RegistryKey key = Registry.LocalMachine; RegistryKey software = key.CreateSubKey(registryItemPath); //在HKEY_LOCAL_MACHINE\SOFTWARE下新建名为test的注册表项。如果已经存在则不影响! } /// <summary> /// 获取注册表值 /// </summary> /// <returns></returns> public static string GetRegistryValue(string key, string registryItemPath = REGISTRY_ITEM_PATH) { string info = ""; RegistryKey Key; Key = Registry.LocalMachine; var myreg = Key.OpenSubKey(registryItemPath); info = myreg.GetValue(key).ToString(); myreg.Close(); return info; } /// <summary> /// 修改注册表项值 /// </summary> /// <param name="subKey"></param> /// <param name="val"></param> /// <param name="registryItemPath"></param> public static void SetRegistryValue(string subKey, string val, string registryItemPath = REGISTRY_ITEM_PATH) { using (RegistryKey key = Registry.LocalMachine) { RegistryKey software = key.OpenSubKey(registryItemPath, true); //该项必须已存在 software.SetValue(subKey, val); //在HKEY_LOCAL_MACHINE\SOFTWARE\test下创建一个名为“test”,值为“博客园”的键值。如果该键值原本已经存在,则会修改替换原来的键值,如果不存在则是创建该键值。 // 注意:SetValue()还有第三个参数,主要是用于设置键值的类型,如:字符串,二进制,Dword等等~~默认是字符串。如: // software.SetValue("test", "0", RegistryValueKind.DWord); //二进制信息 key.Close(); } } /// <summary> /// 删除注册表项 /// </summary> public static void DeleteRegistry(string registryItemPath = REGISTRY_ITEM_PATH) { RegistryKey key = Registry.LocalMachine; key.DeleteSubKey(registryItemPath, true); //该方法无返回值,直接调用即可 key.Close(); } /// <summary> /// 删除注册表值 /// </summary> public static void DeleteRegistryValue(string subKey, string registryItemPath = REGISTRY_ITEM_PATH) { RegistryKey delKey = Registry.LocalMachine.OpenSubKey(registryItemPath, true); delKey.DeleteValue(subKey); delKey.Close(); } /// <summary> /// 判断注册表项是否存在 /// </summary> /// <returns></returns> public static bool IsRegeditItemExist() { string[] subkeyNames; RegistryKey hkml = Registry.LocalMachine; RegistryKey software = hkml.OpenSubKey("SOFTWARE"); //RegistryKey software = hkml.OpenSubKey("SOFTWARE", true); subkeyNames = software.GetSubKeyNames(); //取得该项下所有子项的名称的序列,并传递给预定的数组中 foreach (string keyName in subkeyNames) //遍历整个数组 { if (keyName == "test") //判断子项的名称 { hkml.Close(); return true; } } hkml.Close(); return false; } /// <summary> /// 判断键值是否存在 /// </summary> /// <returns></returns> public static bool IsRegeditKeyExist(string subKey, string registryItemPath = REGISTRY_ITEM_PATH) { string[] subkeyNames; RegistryKey hkml = Registry.LocalMachine; RegistryKey software = hkml.OpenSubKey(registryItemPath); //RegistryKey software = hkml.OpenSubKey("SOFTWARE\\test", true); subkeyNames = software.GetValueNames(); //取得该项下所有键值的名称的序列,并传递给预定的数组中 foreach (string keyName in subkeyNames) { if (keyName == subKey) //判断键值的名称 { hkml.Close(); return true; } } hkml.Close(); return false; } } }
相关文章推荐
- c# RegistryKey操作注册表
- C#操作windows注册表的方法
- c#.net操作注册表RegistryKey
- c# RegistryKey注册表操作
- Operating the registry help class(C#读写注册表操作)
- C#操作注册表REG_DWORD类型键异常(RegistryValueKind.DWord异常)解决方案
- C#操作注册表REG_DWORD类型键异常(RegistryValueKind.DWord异常)解决方案
- C#操作注册表
- 基于C#分步式聊天系统的在线视频直播系统 之 数据库操作基类 - 通用于Windows及Linux的Mono环境
- C#综合揭秘——通过修改注册表建立Windows自定义协议
- C#操作注册表 创建快速启动程序
- C#中对注册表的操作
- [导入]C#中对注册表的操作
- 收藏到Nios.org的文章(C#操作注册表)
- c#基础知识---Windows 文件系统的操作
- C#操作注册表
- 用 C# 在 Windows 7 中写注册表想到的
- C#操作注册表
- 对Windows注册表编辑操作(用Reg文件)
- C#中关于文件读写操作和注册表操作