一、原理

  需要开机自启动的程序,需要将其启动程序的路径写到注册表中指定的文件夹下。

二、实现方式

  方法1:在生成安装程序时配置;

  方法2:在程序运行时动态配置。

三、在生成安装程序时配置

  1、右击安装编辑程序,在“视图”菜单中,选择“注册表”。依次打开键“HKEY_CURRENT_USER”→“Software”,如下图:

   

  2、右键点击“Software”键→“新建(N)”→“键(K)”,创建“Microsoft”键。

  3、如步骤2方式依次创建“Windows” 键→“CurrentVersion”键→“Run”键。

  4、右键Run,新建“字符串值”。为右侧的key命名(在注册表中不能重名),并在属性中指定它的value值,完成后如下图所示:

  

  注:[TARGETDIR]表示在程序的安装路径。

四、在程序运行时动态配置

  在程序运行时,通过调用如下方法实现开机启动。需引用命名空间 Microsoft.Win32。

/// <summary>  
/// 修改程序在注册表中的键值  
/// </summary>  
/// <param name="flag">1:开机启动</param>  
private void StartUp(string flag)  
{  
    string path=Application.StartupPath;  
    string keyName = path.Substring(path.LastIndexOf("\\") + );  
    Microsoft.Win32.RegistryKey Rkey = Microsoft.Win32.Registry.CurrentUser.OpenSubKey("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run", true);  
  
    if (flag.Equals(""))  
    {  
        if (Rkey == null)  
        {  
            Rkey = Microsoft.Win32.Registry.CurrentUser.CreateSubKey("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run");  
        }  
        Rkey.SetValue(keyName, path + @"\PeisDoctorHZ.exe");  
    }  
    else  
    {  
        if (Rkey != null)  
        {  
            Rkey.DeleteValue(keyName, false);  
        }  
    }  
}  

  注:该程序的启动项设置到HKEY_Current_User 下。如果想改在HKEY_LOCAL_MACHINE,只需将 CurrentUser 改为 LocalMachine,即

Rkey = Microsoft.Win32.Registry.LocalMachine.CreateSubKey("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run");  

WinForm 之 应用程序开机自启动设置方法的更多相关文章

  1. ubuntu16.04 程序开机自启动设置及启动优化

    使用过程中,为了方便使用,有一些程序需要开机时自启动应用,下面将介绍一下ubuntu16.04下程序的开机自启动设置方法. 1  建立一个可执行程序的运行脚本如 keepalive.sh.内部写入要执 ...

  2. CentOS设置程序开机自启动的方法

    转自:http://www.centos.bz/2011/09/centos-setup-process-startup-boot/ 在CentOS系统下,主要有两种方法设置自己安装的程序开机启动. ...

  3. win 程序开机自启动设置

    若程序设置了开机自启动,但是仍没有效果,可能是被什么拦截了,或者什么原因.导致开机并没有自启动,那么如何解决呢? 解决方法:将软件的快捷方式 或 单个软件 直接拷贝到 如下目录,即可强制实现开机自启动 ...

  4. 转:CentOS设置程序开机自启动的方法

    转自:http://www.centos.bz/2011/09/centos-setup-process-startup-boot/ 1.把启动程序的命令添加到/etc/rc.d/rc.local文件 ...

  5. Linux设置程序开机自启动,系统命令chkconfig及linux /etc/rc.d/目录的详解

     整理了linux下程序开启几种方式,转载相关博客做统一记录 <linux程序设置开机自启动>转载自:https://www.cnblogs.com/flcz/p/7691532.html ...

  6. Linux设置程序开机自启动

    注意: 作者测试时,Linux版本为RedHat6,同时应用在CentOS6应该也可以(作者未实测,但有同事在CentOS6上使用可行),系统版本的不同,可能造成操作上的差异(CentOS7就与Cen ...

  7. Winform获取应用程序的当前路径的方法集合(转)

    Winform获取应用程序的当前路径的方法集合,具体如下,值得收藏 //获取当前进程的完整路径,包含文件名(进程名). string str = this.GetType().Assembly.Loc ...

  8. C# 实现程序开机自启动

    最近在做一个自动备份文件的小工具,需要用到开机自启动 下面是代码 private void checkBox8_CheckedChanged(object sender, EventArgs e) { ...

  9. CentOS程序 开机启动设置与chkconfig命令学习

    CentOS设置程序开机启动的方法: 1.启动命令添加到/etc/rc.d/rc.local 文件中, 如: vim /etc/rc.d/rc.local #!/bin/sh # # This scr ...

随机推荐

  1. WCF中修改接口或方法名称而不影响客户端程序

    本篇接着"从Web Service和Remoting Service引出WCF服务"中有关WCF的部分. 运行宿主应用程序. 运行Web客户端中的网页. 输入内容,点击按钮,能获取 ...

  2. windows phone 基础

    一.安装 建议安装Windows 7环境,XP中不能运行模拟器,Vista系统支持,但不解释.系统安装完后,直接去微软网站在线安装即可,非常方便,美中不足的是如果你的网速不快,那可能要折磨你半天,快得 ...

  3. TStream实现多表提交

    TStream实现多表提交 function TynFiredac.SaveDatas(const ATableName, ATableName2: string; ADeltas: TStream; ...

  4. iOS开发25:使用SOAP访问Web服务

    SOAP是简单对象访问协议,它可看成是HTTP与XML的结合,其中XML部分是作为HTTP报文的实体主体部分.具体信息可以参考百度百科. 在iOS中使用SOAP,需要我们自己组装XML格式的字符串,当 ...

  5. 点击cell动态修改高度动画

    点击cell动态修改高度动画 效果 源码 https://github.com/YouXianMing/Animations // // TapCellAnimationController.m // ...

  6. [转] OpenStack IPSec VPNaaS

    OpenStack IPSec VPNaaS ( by quqi99 ) 作者:张华  发表于:2013-08-03版权声明:可以任意转载,转载时请务必以超链接形式标明文章原始出处和作者信息及本版权声 ...

  7. 架构模式逻辑层模式之:表模块(Table Model)

    表模块和领域模型比,有两个显著区别: 1:表模块中的类和数据库表基本一一对应,而领域模型则无此要求: 2:表模块中的类的对象处理表中的所有记录,而领域模型的一个对象代表表中的一行记录: 一般情况下,我 ...

  8. 带标签的 break 和 continue (Java)

    2002年12月发于 CCW-I2006年9月搬至 CSDN,略作修改 Java 中有 goto 关键字,但这个关键字没有任何作用,换句话说,我们不能使用 goto 来进行跳转到某行.实际上,结构化程 ...

  9. TensorFlow的离线安装

    主要通过whl方式进行配置. 1.1          Whl文件下载地址: https://www.lfd.uci.edu/~gohlke/pythonlibs/ 注意:必须安装numpy-mkl, ...

  10. 使用python type动态创建类

    使用python type动态创建类 X = type('X', (object,), dict(a=1))  # 产生一个新的类型 X 和下列方法class X(object):    a = 1效 ...