#region 访问 AppSettings

private void SaveAppSetting(string key, string value)
{
    var config = ConfigurationManager.OpenExeConfiguration(System.Windows.Forms.Application.ExecutablePath);
    var section = config.GetSection("appSettings") as AppSettingsSection;
    if (section.Settings[key] == null)
        section.Settings.Add(key, value ?? string.Empty);
    else
        section.Settings[key].Value = value ?? string.Empty;
    config.Save(ConfigurationSaveMode.Modified, true);
}

private string GetAppSetting(string key)
{
    var config = ConfigurationManager.OpenExeConfiguration(System.Windows.Forms.Application.ExecutablePath);
    var section = config.GetSection("appSettings") as AppSettingsSection;
    if (section.Settings[key] == null)
        return string.Empty;
    return section.Settings[key].Value;
}

#endregion

#region 开机自启

private bool AutoStart
{
    get
    {
        var autoStart = GetAppSetting("autostart");
        if (string.IsNullOrWhiteSpace(autoStart))
            return false;
        return true;
    }
    set
    {
        if (value)
        {
            SaveAppSetting(");
            CreateShortcut();
        }
        else
        {
            SaveAppSetting("autostart", string.Empty);
            DeleteShortcut();
        }
    }
}

private void CreateShortcut()
{
    IWshShell_Class shell = new IWshShell_ClassClass();
    var shortcut = shell.CreateShortcut(Environment.GetFolderPath(Environment.SpecialFolder.Startup) + "\\" + Application.ProductName + ".lnk") as IWshShortcut;
    shortcut.TargetPath = Application.ExecutablePath;
    shortcut.Save();
}

private void DeleteShortcut()
{
    var linkPath = Environment.GetFolderPath(Environment.SpecialFolder.Startup) + "\\" + Application.ProductName + ".lnk";
    System.IO.File.Delete(linkPath);
}

#endregion

需要引用COM组件:Window Script Host Object Model

C# 创建开机启动核心代码的更多相关文章

  1. Delphi创建开机启动项的方法示例

    Delphi可以通过创建开机启动项键值的方法,将程序添加到开机启动项中.通过本实例代码就可以为您的程序添加到快速启动中,随着Windows一起启动,开机即运行的程序.该实例代码简单,主要是通过添加注册 ...

  2. C# 开机启动代码

     开机启动/关闭 代码 using System; using System.Collections.Generic; using System.Linq; using System.Text; us ...

  3. C# 程序设置开机启动(一)

    一.示例使用VBScript创建启动文件,并添加到Windows系统的启动目录 默认情况下 所有用户启动目录:C:\ProgramData\Microsoft\Windows\Start Menu\P ...

  4. 完美实现开机启动虚拟WIFI,顺便实现目前的WP8系统使用VPN(7.1修)

    众所周知,windows7系统的机器若带有无线网卡(台式机可以买一个USB无线网卡,京东目前39元,TP-Link的),可以虚拟出wifi,供手机等移动设备使用. 虚拟的WIFI的命了和软件在网上都找 ...

  5. JavaFx 创建快捷方式及设置开机启动

    原文地址:JavaFx 创建快捷方式及设置开机启动 | Stars-One的杂货小窝 原本是想整个桌面启动器,需要在windows平台上实现开机启动,但我的软件都是jar文件,不是传统的exe文件,也 ...

  6. android启动第一个界面时即闪屏的核心代码(两种方式)

    闪屏,就是SplashScreen,也能够说是启动画面,就是启动的时候,闪(展示)一下,持续数秒后.自己主动关闭.  第一种方式: android的实现很easy,使用Handler对象的postDe ...

  7. 创建httpd启动脚本并加入启动列表开机启动

    第一步: cp /usr/local/apache2/bin/apachectl /etc/init.d/httpd   第二步: vim /etc/init.d/httpd 在第一行#!/bin/s ...

  8. Centos创建定时任务和开机启动运行脚本

    aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAArYAAADlCAIAAAAp5CPLAAAgAElEQVR4nNS8d3cj15nuW/wq91vc8d ...

  9. Linux创建Jenkins启动脚本以及开机启动服务

    1.jenkins.sh #!/bin/bash ###主要目的用于开机启动服务,不然 启动jenkins.war包没有java -jar的权限 JAVA_HOME=/usr/lib/jdk1.8.0 ...

随机推荐

  1. 虚拟机下Linux读取USB设备的问题虚拟机下Linux无法读取USB设备的解决方案

    我们在虚拟机中识别USB设备有三种情况导致Linux系统不能读取到USB设备: 1. .当虚拟机的USB服务没有开启的时候 2. 若虚拟机的USB连接的设置选项没有设置好 3. Widows抢先一步, ...

  2. Java中文件的随机读写

    [例 10-12]模仿系统日志,将数据写入到文件尾部. //********** ep10_12.java ********** import java.io.*; class ep10_12{ pu ...

  3. Linux 下安装Source Insight

    第一步: 安装Wine 下面跟大家分享一下如何在Ubuntu 12.04上安装Wine 1).添加PPA --  PPA:表示 Personal Package Archives,也就是个人软件包集. ...

  4. 【Excel】宏之初认识

    出于提高效率的原因,希望excel能够不需要人为干预的完成一些操作,学习excel宏的编写与调试: 第一列输入公式,第二类输出计算结果:(如果自动获取文件的行数,待补充) Sub Calc() a = ...

  5. NOIP 考前 数据结构复习

    BZOJ 1455 左偏树即可 #include <cstdio> #define LL long long ; struct Info{LL l,r,v,Dis;}Tree[Maxn]; ...

  6. svn/git的diff、patch

    svn/git的diff.patch 前几天,正当我突突的写代码,企业微信嘀嘀一声响”在不,过来帮我看个bug”.本人一向助人为乐,高兴的冲了过去,然后就开始了一段长达1分钟的问题描述.很明显,此同学 ...

  7. js去空格

    写成类的方法格式如下:(str.trim();) <script language="javascript"> String.prototype.trim=functi ...

  8. linux驱动之USB驱动程序

    1. USB是主从结构的 所有的USB传输,都是从USB主机这方发起:USB设备没有"主动"通知USB主机的能力. 例子:USB鼠标滑动一下立刻产生数据,但是它没有能力通知PC机来 ...

  9. 在Unity中创建可远程加载的.unity3d包

    在一个Unity项目中,发布包本身不一定要包括所有的Asset(译为资产或组件),其它的部分可以单独发布为.unity3d,再由程序从本地/远程加载执行,这部分不在本文讨论范围.虽然Unity并没有直 ...

  10. IOS UI多线程 NSThread 下载并显示图片到UIImageView

    效果图 @property (weak,nonatomic)IBOutletUILabel *downLabelInfo; @property (weak,nonatomic)IBOutletUIIm ...