C# 如何从msconfig窗口中删除启动项?

C# 如何从msconfig窗口中删除启动项?,c#,.net,windows,startup,C#,.net,Windows,Startup,我正在窗口启动中创建启动项。如果用户使用msconfig启动窗口取消选择条目,我的应用程序将创建一个重复条目。我需要删除现有条目(如果存在),或者跳过创建重复条目。我该怎么做 我创建启动条目的代码如下:- string startUpFolderPath = Environment.GetFolderPath(Environment.SpecialFolder.Startup) + "\\" + "MyexeName.exe"; if (System.IO.File.E

我正在窗口启动中创建启动项。如果用户使用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();

这些条目存储在注册表中

以下是添加和删除条目的方式:

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);
}
以下是不同条目的列表:

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

打开清单文件并更改行:


然后按save


更多信息:

要使用此功能,是否需要以管理员权限运行应用程序?是否有其他选项可用,因为我不想授予应用程序管理员权限。您在msconfig中看到的列表是所有注册表项,您可以通过编辑注册表来删除/添加/编辑它们,但只有具有管理员权限的应用程序才能编辑注册表。如果要使应用程序在启动时运行,只需将其放入“C:\Users\Nicolas\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\startup”文件夹,但无法从此处删除启动时启动的程序,因为它们不在此处,而是在注册表中。为了回答您关于是否有其他方式获得管理员权限的问题,是的,有。。。“右键单击>以管理员身份运行”。好的,我理解这一点。所以我应该只在Environment.SpecialFolder.Startup文件夹中添加快捷方式文件,并只检查该文件(正如我在代码中已经做的那样),并且在msconfig中不会有条目,对吗?让我们来看看