【问题标题】:How can we remove startup entry from msconfig window?我们如何从 msconfig 窗口中删除启动项?
【发布时间】:2013-09-11 14:22:26
【问题描述】:

我正在窗口启动中创建启动项。如果用户使用 msconfig 启动窗口取消选择该条目,我的应用程序会创建一个重复的条目。如果现有条目存在,我需要删除它或跳过创建重复项。我该怎么做?

我创建启动项的代码是这样的:-

string startUpFolderPath = Environment.GetFolderPath(Environment.SpecialFolder.Startup) + "\\" + "MyexeName.exe";

            if (System.IO.File.Exists(startUpFolderPath))
            {
                return;
            }

            WshShellClass wshShell = new WshShellClass();
            IWshRuntimeLibrary.IWshShortcut shortcut;
            shortcut = (IWshRuntimeLibrary.IWshShortcut)wshShell.CreateShortcut(startUpFolderPath);
            shortcut.TargetPath = Application.ExecutablePath;
            shortcut.WorkingDirectory = Application.StartupPath;
            shortcut.Save();

【问题讨论】:

    标签: c# .net windows startup


    【解决方案1】:

    条目存储在注册表中。

    这是你应该如何添加和删除条目:

    using Microsoft.Win32;
    
    private void SetStartup()
    {
        RegistryKey rk = Registry.CurrentUser.OpenSubKey("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run", true);
    
        if (ShouldAdd)
            rk.SetValue(AppName, Application.ExecutablePath.ToString());
        else
            rk.DeleteValue(AppName, false);
    }
    

    这里是不同条目的列表:
    https://stackoverflow.com/a/5394144/2027232

    要获得管理员权限,您需要将清单文件添加到您的应用:
    Ctrl+Shift+A(添加新项目),然后选择(应用程序清单文件)

    打开清单文件,换行:
    <requestedExecutionLevel level="asInvoker" uiAccess="false" />

    <requestedExecutionLevel level="requireAdministrator" uiAccess="false" />

    然后按保存。

    更多信息:How to give my C# app administrative rights? manifest file

    【讨论】:

    • 要使用这个,是否需要以管理员权限运行应用程序?
    • 是否还有其他可用选项,因为我不想授予该应用的管理员权限。
    • 您在 msconfig 中看到的列表是所有注册表项,您可以通过编辑注册表来删除/添加/编辑它们,但只有具有管理员权限的应用程序才能编辑注册表。如果您想让应用程序在启动时运行,您可以将其放在“C:\Users\Nicolas\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup”文件夹中,但您将无法删除程序从这里开始,因为它们不在那里,它们在注册表中。并回答您是否有其他方式获得管理员权限的问题,是的...“右键单击 > 以管理员身份运行”。
    • 好的,我明白了。所以我应该在 Environment.SpecialFolder.Startup 文件夹中添加快捷方式文件并仅检查该文件(就像我在我的代码中所做的那样)并且在 msconfig 中不会有任何条目,对吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-20
    • 2018-04-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多