C# 實現winform軟件開機自動啓動並最小化到系統托盤(修改註冊表)

//1、開機自動啓動:

//拖一個CheckBox

//一、軟件啓動時給CheckBox重置狀態:

RegistryKey R_local = Registry.LocalMachine;
            RegistryKey R_run =R_local.CreateSubKey(@"SOFTWARE\Microsoft\Windows\CurrentVersion\Run");
            if(R_run.GetValue("BirthdayTipF") == null)
            {
                checkBox1.Checked= false;
            }
            else
            {
               checkBox1.Checked = true;
            }
            R_run.Close();
            R_local.Close();

//二、CheckChanged事件:

private void checkBox1_CheckedChanged(object sender, EventArgs e)
        {
            string R_startPath =Application.ExecutablePath;
            if (checkBox1.Checked ==true)
            {
                RegistryKeyR_local = Registry.LocalMachine;
                RegistryKeyR_run = R_local.CreateSubKey(@"SOFTWARE\Microsoft\Windows\CurrentVersion\Run");
               R_run.SetValue("BirthdayTipF", R_startPath);
               R_run.Close();
               R_local.Close();
            }
            else
            {
                try
                {
                   RegistryKey R_local = Registry.LocalMachine;
                   RegistryKey R_run =R_local.CreateSubKey(@"SOFTWARE\Microsoft\Windows\CurrentVersion\Run");
                   R_run.DeleteValue("BirthdayTipF", false);
                   R_run.Close();
                   R_local.Close();
                }
                catch(Exception ex)
                {
                   MessageBox.Show("您須要管理員權限修改","提示", MessageBoxButtons.OK,MessageBoxIcon.Error);
                   throw;
                }
                
            }
        }

//2、最小化到系統托盤
//拖一個NotifyIcon
//設置form的showInTastbar屬性爲false

this.SizeChanged += new System.EventHandler(this.Form1_SizeChanged);

private void Form1_SizeChanged(object sender, EventArgs e)
        {
            if (this.WindowState ==FormWindowState.Minimized)
            {
                this.Hide();
               this.notifyIcon1.Visible = true;
            }
        }
        private void notifyIcon1_Click(objectsender, EventArgs e)
        {
            this.Visible = true;
            this.WindowState =FormWindowState.Normal;
            this.notifyIcon1.Visible =false;
        }
相關文章
相關標籤/搜索