C#应用程序开机自启动

自己之前写了个校园网自动登陆的工具(戳我戳我),设置成了开机自启动。不过我的设置方法比较繁琐,先右键exe文件,生成快捷方式,再从开始菜单中找到“启动”文件夹,把这个快捷方式放进去。想到对于绝大多数人来说,这个方法十分复杂,甚至是不可完成的,还是在应用中加个开机自启动的选项比较方便~

想到shadowsocks客户端有个设置自启动功能,并且是开源的,源码托管在github,哦不,准确说是“曾经”。由于某些原因,有关当局下令让作者删除了源码,不过还是可以在long-live-shadowsocks项目中找到(https://github.com/Long-live-shadowsocks)。

代码使用C#,自启动的相关代码在\shadowsocks-csharp\Controller\System\AutoStartup.cs可以找到。

具体如下:

using System;
using System.Windows.Forms;
using Microsoft.Win32;

namespace Shadowsocks.Controller
{
    class AutoStartup
    {
        public static bool Set(bool enabled)
        {
            try
            {
                string path = Application.ExecutablePath;
                RegistryKey runKey = Microsoft.Win32.Registry.CurrentUser.OpenSubKey(@"Software\Microsoft\Windows\CurrentVersion\Run", true);
                if (enabled)
                {
                    runKey.SetValue("Shadowsocks", path);
                }
                else
                {
                    runKey.DeleteValue("Shadowsocks");
                }
                runKey.Close();
                return true;
            }
            catch (Exception e)
            {
                Logging.LogUsefulException(e);
                return false;
            }
        }

        public static bool Check()
        {
            try
            {
                string path = Application.ExecutablePath;
                RegistryKey runKey = Microsoft.Win32.Registry.CurrentUser.OpenSubKey(@"Software\Microsoft\Windows\CurrentVersion\Run");
                string[] runList = runKey.GetValueNames();
                runKey.Close();
                foreach (string item in runList)
                {
                    if (item.Equals("Shadowsocks"))
                        return true;
                }
                return false;
            }
            catch (Exception e)
            {
                Logging.LogUsefulException(e);
                return false;
            }
        }
    }
}


原创文章,转载请注明: 转载自张哲的博客

本文链接地址: C#应用程序开机自启动

  • 楼主:宝贝女儿3周岁了,想要一个东西却不明说,必须你问她,给她才要,是不是有心理障碍?
    回复:别说三岁了,三十岁的女人都这样。