• C#操作注册表


    using System.Windows.Forms;
    using Microsoft.Win32;
    
    namespace RegeditManager
    {
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
            }
            //创建并写入
            private void button1_Click(object sender, EventArgs e)
            {
                RegistryKey key = Registry.LocalMachine;
                try
                {
                    RegistryKey software = key.CreateSubKey("software\\LabManager");
                    software = key.OpenSubKey("software\\LabManager", true);
                    software.SetValue("Address", @"C:\Program Files\实验室管理系统\dbcom.xml");
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.ToString());
                }
                finally
                {
                    key.Close();
                }
            }
            //读取
            private void button2_Click(object sender, EventArgs e)
            {
                string info = string.Empty;
                RegistryKey key=Registry.LocalMachine;
                try
                {
                    key = key.OpenSubKey("software\\LabManager");
                    if (IsRegeditKeyExit("software\\LabManager", "Address"))
                    {
                        info = key.GetValue("Address").ToString();
                        MessageBox.Show("注册表里的信息为:" + info);
                    }
                    else
                    {
                        MessageBox.Show("键值Address不存在;");
                    }
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.ToString());
                }
                finally
                {
                    key.Close();
                }
            }
            //删除
            private void button3_Click(object sender, EventArgs e)
            {
                RegistryKey key = Registry.LocalMachine;
                try
                {
                    key = key.OpenSubKey("software\\LabManager",true);
                    if (IsRegeditKeyExit("software\\LabManager", "Address"))
                    {
                        key.DeleteValue("Address");
                        MessageBox.Show("删除成功");
                    }
                    else
                    {
                        MessageBox.Show("键值Address不存在;");
                    }
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.ToString());
                }
                finally
                {
                    key.Close();
                }
            }
    
            /// <summary>
            /// 判断键值是否存在
            /// </summary>
            /// <param name="RegistryStr">注册表项</param>
            /// <param name="KeyStr">键值</param>
            /// <returns></returns>
            private bool IsRegeditKeyExit(string RegistryStr,string KeyStr)
            {
                string[] subkeyNames;
    
                RegistryKey hkml = Registry.LocalMachine;
    
                RegistryKey software = hkml.OpenSubKey(RegistryStr);
    
                subkeyNames = software.GetValueNames();
    
                foreach (string keyName in subkeyNames)
                {
                    if (keyName == KeyStr)  //判断键值的名称
                    {
                        hkml.Close();
    
                        return true;
                    }
                }
                hkml.Close();
    
                return false;
            }
    
            /// <summary>
            /// 判断注册表项是否存在
            /// </summary>
            /// <param name="RegistryName">例如:SOFTWARE</param>
            /// <param name="ValueStr">例如:LabManager</param>
            /// <returns></returns>
            private bool IsRegeditItemExist(string RegistryName,string ValueStr)
            {
                string[] subkeyNames;
    
                RegistryKey hkml = Registry.LocalMachine;
    
                RegistryKey software = hkml.OpenSubKey(RegistryName);
    
                subkeyNames = software.GetSubKeyNames();
    
                //取得该项下所有子项的名称的序列,并传递给预定的数组中
    
                foreach (string keyName in subkeyNames)  //遍历整个数组
                {
                    if (keyName == ValueStr) //判断子项的名称
                    {
                        hkml.Close();
                        return true;
                    }
                }
                hkml.Close();
                return false;
    
            }
        }
    }
  • 相关阅读:
    词汇小助手V1.0——一款跨平台词频统计和外语学习工具
    穿越狙击V1.0
    词汇小助手V1.4——加入单词测试功能
    词汇小助手V1.2——可以显示英语单词的国际音标
    词汇小助手官方网站发布了
    强大的云存储与应用管理工具DzzOffice1.0 Beta(大桌子办公)发布下载 大桌子
    <!DOCTYPE>前加有<! xxx >注释在IE中引发的bug
    去笔试腾讯的前端实习生,题目太尼玛坑爹了
    IE中的布局BUG和一些可以避开的BUG
    removeClass,addClass的原生JS代码
  • 原文地址:https://www.cnblogs.com/wujy/p/2935880.html
Copyright © 2020-2023  润新知