C# 如何从msconfig窗口中删除启动项?
我正在窗口启动中创建启动项。如果用户使用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
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中不会有条目,对吗?让我们来看看