zoukankan      html  css  js  c++  java
  • 开机启动项管理

    实现效果:

      

    知识运用:

      RegistryKey类的GetValueNames

      public string[] GetValueName ()  //检索包含与此项关联的所有值名称的字符串数组

      GetValue方法

      public Object GetValue (string name)  //检索与指定名称关联的值

      DeleteValue方法

      public void DeleteValue (string name)    //从注册表中删除指定值

    实现代码:

            string[] Macinfo;
            string[] Curinfo;
            private void getMacinfo()
            {
                RegistryKey rk;
                RegistryKey rk2;
                string[] arr=new string[2];
                rk = Registry.LocalMachine;
                rk2 = rk.OpenSubKey("SOFTWARE\Microsoft\Windows\CurrentVersion\Run",true);
                Macinfo = rk2.GetValueNames();
                foreach (string s in Macinfo)
                {
                    arr[0] = s;
                    arr[1]=rk2.GetValue(s).ToString();
                    ListViewItem lvi = new ListViewItem(arr);
                    listView1.Items.Add(lvi);
                }
            }
    
            private void getCurinfo()
            {
                RegistryKey rk;
                RegistryKey rk2;
                string[] arr = new string[2];
                rk = Registry.CurrentUser;
                rk2 = rk.OpenSubKey("SOFTWARE\Microsoft\Windows\CurrentVersion\Run", true);
                Curinfo = rk2.GetValueNames();
                foreach (string s in Curinfo)
                {
                    arr[0] = s;
                    arr[1] = rk2.GetValue(s).ToString();
                    ListViewItem lvi = new ListViewItem(arr);
                    listView1.Items.Add(lvi);
                }
            }
            private bool IsMacinfo(string s)
            {
                foreach (string str in Macinfo)
                {
                    if (s == str)
                        return true;
                }
                return false;
            }
            private bool IsCurinfo(string s)
            {
                foreach (string str in Curinfo)
                {
                    if (s == str)
                        return true;
                }
                return false;
            }
            private void Form1_Load(object sender, EventArgs e)
            {
                getMacinfo();
                getCurinfo();
            }
    
            private void button1_Click(object sender, EventArgs e)
            {
                if (listView1.CheckedItems.Count > 0)   //如果有选中
                {
                    foreach (ListViewItem i in listView1.CheckedItems)
                    {
                        if (IsMacinfo(i.Text))          //判断存于
                        {
                            RegistryKey rk;
                            RegistryKey rk2;
                            rk = Registry.LocalMachine;
                            rk2 = rk.OpenSubKey("SOFTWARE\Microsoft\Windows\CurrentVersion\Run", true);
                            rk2.DeleteValue(i.Text); 
                        }
                        if(IsCurinfo(i.Text))    
                        {
                            RegistryKey rk;
                            RegistryKey rk2;
                            rk = Registry.CurrentUser;
                            rk2 = rk.OpenSubKey("SOFTWARE\Microsoft\Windows\CurrentVersion\Run", true);
                            rk2.DeleteValue(i.Text);    //执行删除
                        }
                    }
                    listView1.Items.Clear();        //清空ListView控件
                    getCurinfo();                   //调用刷新
                    getMacinfo();                   //调用刷新
                }
            }
    

      

  • 相关阅读:
    hutool 糊涂
    java 连接 Redis 工具
    生成6位验证码
    @FeignClient定义冲突解决
    Seate分布式事务解决方案
    算法——最小生成树的关键边和伪关键边
    《Kubernetes权威指南》读书笔记
    Docker——容器卷管理
    算法——课程表 II(有向图拓扑排序)
    Docker——网络
  • 原文地址:https://www.cnblogs.com/feiyucha/p/10314775.html
Copyright © 2011-2022 走看看