c#设置程序开机自启动

在网上找的代码都是直接设置的,放到 Form1_Load 中程序每次启动就注册感觉怪怪的
就想办法如何在注册前先判断程序有没有注册过,通过F12找到了GetValueNames方法。

        private void autorun()
        {
            //获取程序路径
            string execPath = Application.ExecutablePath;
            bool isexc = false;
            try
            {

                RegistryKey RKey = Registry.LocalMachine.CreateSubKey(@"SOFTWARE\Microsoft\Windows\CurrentVersion\Run");
                //设置自启的程序叫获取目录下的程序名字
                string[] ar = RKey.GetValueNames();
                foreach (string st in ar)
                {
                    if(st.Equals("test"))
                    {
                        isexc = true;
                    }
                }
                if (!isexc)
                {
                    //设置自启的程序叫test
                    RKey.SetValue("test", execPath);
                }


            }
            catch (Exception ex)
            {
                Console.WriteLine(ex);
            }
        }

你可能感兴趣的:(c#设置程序开机自启动)