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

    最近在做一个自动备份文件的小工具,需要用到开机自启动

    下面是代码

            private void checkBox8_CheckedChanged(object sender, EventArgs e)
            {
               try
                {
                    //设置开机自启动  
                    if (checkBox8.Checked == true)
                    {
                    /*方法一*/
                    string StartupPath = System.Environment.GetFolderPath(System.Environment.SpecialFolder.CommonStartup);
                    //获得文件的当前路径
                    string dir = Directory.GetCurrentDirectory();
                    //获取可执行文件的全部路径
                    string exeDir = dir + @"自动备份.exe.lnk";
                    File.Copy(exeDir, StartupPath + @"自动备份.exe.lnk", true);
                    /*方法二*/
                    string path = Application.ExecutablePath;
                    RegistryKey rk = Registry.LocalMachine;
                    RegistryKey rk2 = rk.CreateSubKey(@"SoftwareMicrosoftWindowsCurrentVersionRun");
                    rk2.SetValue("JcShutdown", path);
                    rk2.Close();
                    rk.Close();
    
                    }
                    //取消开机自启动  
                    else
                    {
                        /*方法一*/
                        string StartupPath = System.Environment.GetFolderPath(System.Environment.SpecialFolder.CommonStartup);
                        System.IO.File.Delete(StartupPath + @"EcgNetPlug.exe.lnk");
                        /*方法二*/
                        string path = Application.ExecutablePath;
                        RegistryKey rk = Registry.LocalMachine;
                        RegistryKey rk2 = rk.CreateSubKey(@"SoftwareMicrosoftWindowsCurrentVersionRun");
                        rk2.DeleteValue("JcShutdown", false);
                        rk2.Close();
                        rk.Close();
                    }
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message);
                }
            }

    第一种方法原理是直接把可执行文件的快捷方式复制到系统的启动目录里,这种方式不会被安全软件拦截,不需要额外的权限

    第二种方式是直接写注册表,这种方式可能会把安全软件拦截

    大家可以自己试试,有问题可以留言,我也是边学边做

    作者:逐梦
    出处:http://www.cnblogs.com/huanjun/
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利

  • 相关阅读:
    封装 lhgDialog弹出窗口组件 为C#的api
    最简单的dbhelper类
    asp.net无组件导出Excel
    js中的escape的用法汇总
    【Demo 0110】获取内存信息
    【Demo 0119】延时加载DLL 编程
    【Demo 0112】共享数据段
    【Demo 0116】堆的使用
    【Demo 0111】获取进程当前内存使用
    【Demo 0118】动态加载DLL
  • 原文地址:https://www.cnblogs.com/huanjun/p/8438284.html
Copyright © 2011-2022 走看看