自己封装的注册表操作类
来源:互联网 发布:做淘宝推广工资怎么样 编辑:程序博客网 时间:2024/05/21 20:07
- using System;
- using System.Collections.Generic;
- using System.Text;
- using Microsoft.Win32;
- namespace WWBClassLib.PC
- {
- public class RegEdit
- {
-
-
-
-
-
-
- public static string GetRegistData(string RegUrl,string name)
- {
- string registData;
- char[] sp = {'/'};
- string[] nodes = RegUrl.Split(sp);
- RegistryKey root = null;
- switch (nodes[0].ToUpper())
- {
- case "HKEY_CLASSES_ROOT":
- root = Registry.ClassesRoot;
- break;
- case "HKEY_CURRENT_USER":
- root = Registry.CurrentUser;
- break;
- case "HKEY_LOCAL_MACHINE":
- root = Registry.LocalMachine;
- break;
- case "HKEY_USERS":
- root = Registry.Users;
- break;
- case "HKEY_CURRENT_CONFIG":
- root = Registry.CurrentConfig;
- break;
-
- }
- if (root == null)
- {
- return "error root";
- }
- RegistryKey node = root;
- for (int i = 1; i < nodes.Length; i++)
- {
-
- node = node.OpenSubKey(nodes[i], true);
- if (node == null)
- {
- return nodes[i] + "节点不存在";
- }
-
- }
-
- registData = node.GetValue(name).ToString();
- return registData;
- }
-
-
-
-
-
-
-
- public static string WTRegedit(string RegUrl, string name, object value)
- {
-
- char[] sp = { '/' };
- string[] nodes = RegUrl.Split(sp);
- RegistryKey root = null;
- switch (nodes[0].ToUpper())
- {
- case "HKEY_CLASSES_ROOT":
- root = Registry.ClassesRoot;
- break;
- case "HKEY_CURRENT_USER":
- root = Registry.CurrentUser;
- break;
- case "HKEY_LOCAL_MACHINE":
- root = Registry.LocalMachine;
- break;
- case "HKEY_USERS":
- root = Registry.Users;
- break;
- case "HKEY_CURRENT_CONFIG":
- root = Registry.CurrentConfig;
- break;
- }
- if (root == null)
- {
- return "error root";
- }
- RegistryKey node = root;
- for (int i = 1; i < nodes.Length; i++)
- {
- if(!IsRegeditExit(node,nodes[i]))
- {
- node = node.CreateSubKey(nodes[i]);
- continue;
- }
- node = node.OpenSubKey(nodes[i], true);
-
- }
- node.SetValue(name, value);
- return "";
- }
- private static bool IsRegeditExit(RegistryKey node ,string name)
- {
- string [] subkeyNames = node.GetSubKeyNames();
- foreach (string keyName in subkeyNames)
- {
- if (keyName == name)
- {
-
- return true;
- }
- }
- return false;
- }
-
-
-
-
-
-
- public static string DeleteRegist(string RegUrl, string name)
- {
- char[] sp = { '/' };
- string[] nodes = RegUrl.Split(sp);
- RegistryKey root = null;
- switch (nodes[0].ToUpper())
- {
- case "HKEY_CLASSES_ROOT":
- root = Registry.ClassesRoot;
- break;
- case "HKEY_CURRENT_USER":
- root = Registry.CurrentUser;
- break;
- case "HKEY_LOCAL_MACHINE":
- root = Registry.LocalMachine;
- break;
- case "HKEY_USERS":
- root = Registry.Users;
- break;
- case "HKEY_CURRENT_CONFIG":
- root = Registry.CurrentConfig;
- break;
- }
- if (root == null)
- {
- return "error root";
- }
- RegistryKey node = root;
- for (int i = 1; i < nodes.Length; i++)
- {
- node = node.OpenSubKey(nodes[i], true);
- if (node == null)
- {
- return nodes[i] + "节点不存在";
- }
- }
- if (!IsRegeditExit(node, name))
- {
- return name + "键值不存在";
- }
- else
- {
- node.DeleteSubKeyTree(name);
- }
- return "";
-
- }
- }
- }