zoukankan      html  css  js  c++  java
  • C#实现程序的开机启动

    Code
    using Microsoft.Win32;

    private void btnShowOpen_Click(object sender, EventArgs e)
            {
                OpenFileDialog open = new OpenFileDialog();
                open.Filter = "可执行文件(*.exe)|*.exe";
                if (open.ShowDialog() == DialogResult.OK)
                {
                    txtPath.Text = open.FileName;
                }
            }

            private bool runWhenStart(bool started,string exeName, string path)
            {          
                RegistryKey key = Registry.LocalMachine.OpenSubKey("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run", true);//打开注册表子项
                if (key == null)//如果该项不存在的话,则创建该子项
                {
                    key = Registry.LocalMachine.CreateSubKey("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run");
                }
                if (started == true)
                {
                    try
                    {                   
                        key.SetValue(exeName, path);//设置为开机启动
                        key.Close();
                    }
                    catch
                    {
                        return false;
                    }
                }
                else
                {
                    try
                    {                   
                        key.DeleteValue(exeName);//取消开机启动
                        key.Close();
                    }
                    catch
                    {
                        return false;
                    }
                }
                return true;
            }

            private void btnSet_Click(object sender, EventArgs e)
            {
                if (txtPath.Text == "")//检查是否选择了文件
                {
                    MessageBox.Show("请选择要随计算机一起启动的程序路径!", "消息", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    txtPath.Focus();
                    return;
                }           
                string path = txtPath.Text.Trim();
                string exeName = path.Substring(path.LastIndexOf("\\") + 1);
                if (!File.Exists(path))//检查该文件是否存在
                {
                    MessageBox.Show("文件不存在!", "消息", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    txtPath.Text = "";
                    txtPath.Focus();
                    return;
                }
                if (runWhenStart(true,exeName, path))
                {
                    MessageBox.Show("设置成功!", "消息", MessageBoxButtons.OK, MessageBoxIcon.Information);
                }
                else
                {
                    MessageBox.Show("设置失败!", "消息", MessageBoxButtons.OK, MessageBoxIcon.Information);
                }
            }

            private void btnCancel_Click(object sender, EventArgs e)
            {
                if (txtPath.Text == "")//检查是否选择了文件
                {
                    MessageBox.Show("请选择要撤销随计算机一起启动的程序路径!", "消息", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    txtPath.Focus();
                    return;
                }
                string path = txtPath.Text.Trim();
                string exeName = path.Substring(path.LastIndexOf("\\") + 1);
                if (!File.Exists(path))//检查该文件是否存在
                {
                    MessageBox.Show("文件不存在!", "消息", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    txtPath.Text = "";
                    txtPath.Focus();
                    return;
                }
                if (runWhenStart(false, exeName, path))
                {
                    MessageBox.Show("撤销成功!", "消息", MessageBoxButtons.OK, MessageBoxIcon.Information);
                }
                else
                {
                    MessageBox.Show("撤销失败!", "消息", MessageBoxButtons.OK, MessageBoxIcon.Information);
                }
            }

  • 相关阅读:
    【XSY2990】树 组合数学 容斥
    【LOJ2542】【PKUWC 2018】随机游走 min-max容斥 树上高斯消元
    【51NOD1847】奇怪的数学题 min_25筛
    【51NOD1965】奇怪的式子 min_25筛
    蒟蒻的学习计划
    【XSY2962】作业 数学
    蒟蒻的做题记录
    【LOJ2586】【APIO2018】选圆圈 CDQ分治 扫描线 平衡树
    【APIO2016】【UOJ205】【LOJ2568】烟花表演 可合并堆
    【BZOJ2876】【Noi2012】骑行川藏 拉格朗日乘法
  • 原文地址:https://www.cnblogs.com/a1656344531/p/2837897.html
Copyright © 2011-2022 走看看