大家都知道,我们有很多软件都是开机时,就会自启动,今天就初步来聊聊这个自启动。

添加应用程序自启动的方式

  • 使用 msconfig 添加
  • 从开始菜单中添加
  • 通过修改注册表添加

使用msconfig添加

  • 使用该方法比较简单,通过 win + R ,输入“msconfig”,这个时候会打开一个系统配置界面如下图所示:


    只需要将需要开机启动的项勾选后,点击“全部启动”就可以完成程序自启动的添加或者关闭。

如果是在win10中,需要在任务管理器中设置

选中需要启动的进程名称,右键菜单中选择启用,启用后需要重启电脑生效。

从开始菜单中添加

  • 在开始菜单中,所有应用中找到启动文件夹,将需要启动的程序快捷方式拖入进去就完成了开机自启动,或者将应用程序的快捷方式拖入到对应的路径下。
    具体路径包含有:
    当前用户专有的启动文件夹:%appdata%\Microsoft\Windows\Start Menu\Programs\StartUp
    所有用户有效的启动文件夹:%ProgramData%\Microsoft\Windows\Start Menu\Programs\StartUp

通过修改注册表添加

前面有谈到通过msconfig添加自启动,聪明的人会发现,这个列表里面可能会没有找到你想设置的软件,那是因为能在这里显示的软件都是在注册表中有做定义的。具体注册表路径为:
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run 或 HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run
这种添加应用程序自启动的最常用的一种方式。
以HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run为例,我们只需要在Run目录下添加一个字符串值,并将需要启动的应用程序路径添加到键值中。如下图所示:

这样就添加完成了,重启电脑就能看到效果。通过注册表添加自启动除了这个常用的注册表外,还有其他的一些方式可以用来添加自启动,添加方式是一致的。
具体参见:

  • HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run
  • HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run

  • HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\Run
  • HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\Run

  • HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunServices
  • HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunServices

  • HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunOnce
  • HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunOnce

  • HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunServicesOnce
  • HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunServicesOnce

  • HKEY_LOCAL_MACHINE\Software\Microsoft\WindowsNT\CurrentVersion\Winlogon\Userinit

添加自启动示例代码

    public class AutoStartOperator
    {
        public static void AddToAutoStart(string strAppPath)
        {
            try
            {
                var registryKey = RegistryKey.OpenBaseKey(RegistryHive.LocalMachine, Environment.Is64BitOperatingSystem ? RegistryView.Registry64 : RegistryView.Registry32).OpenSubKey(@"SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon", true);
                var strStartPath = registryKey.GetValue("Userinit").ToString();
                var strStartPathArray = strStartPath.Split(',');
                foreach (var startPath in strStartPathArray)
                {
                    if (startPath.Equals(strAppPath))
                        return;
                }
                if (strStartPath.EndsWith(","))
                {
                    strStartPath = $"{strStartPath}{strAppPath},";
                }
                else
                {
                    strStartPath = $"{strStartPath},{strAppPath},";
                }
                registryKey.SetValue("Userinit", strStartPath);
            }
            catch (Exception)
            {

            }
        }

        public static void RemoveAutoStart(string strAppPath)
        {
            try
            {
                var registryKey = RegistryKey.OpenBaseKey(RegistryHive.LocalMachine, RegistryView.Registry64).OpenSubKey(@"SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon", true);
                var strStartPath = registryKey.GetValue("Userinit").ToString();
                string newValue;
                if (strStartPath.EndsWith(strAppPath))
                {
                    newValue = strStartPath.Replace(strAppPath, "");
                }
                else
                {
                    newValue = strStartPath.Replace(strAppPath + ",", "");
                }
                registryKey.SetValue("Userinit", newValue);
            }
            catch (Exception)
            {

            }
        }
    }

知道以上信息,要添加到开机自启动,相信大家也有个初步的认识。针对这些开机启动的选择,我们下期再见。


本文会经常更新,请阅读原文: https://huchengv5.gitee.io//post/%E5%A6%82%E4%BD%95%E6%B7%BB%E5%8A%A0%E5%88%B0%E5%BC%80%E6%9C%BA%E8%87%AA%E5%90%AF%E5%8A%A8.html ,以避免陈旧错误知识的误导,同时有更好的阅读体验。

知识共享许可协议 本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可。欢迎转载、使用、重新发布,但务必保留文章署名胡承(包含链接: https://huchengv5.gitee.io/ ),不得用于商业目的,基于本文修改后的作品务必以相同的许可发布。如有任何疑问,请 与我联系