gpt4 book ai didi

c# - 如何让我的应用程序从“开始”菜单运行?

转载 作者:太空宇宙 更新时间:2023-11-03 19:52:27 24 4
gpt4 key购买 nike

如果您在“开始”菜单的编辑框中键入“regedit”并按下 Enter 键,将调用注册表编辑器。 “cmd”和命令行以及其他几个应用程序无疑也是如此。

如何让我的应用程序以相同的方式响应,以便如果用户在“开始”菜单编辑框中输入“Platypus”,Platypus.exe 将被调用?

是否需要对注册表进行操作/在某处添加一个条目,如果需要,只需要添加哪些键和值?

如果用户需要手动运行一次应用程序(两次单击它的图标;它是一个 Winforms 应用程序),我会感到满意,届时启动代码(没有双关语意)将做任何必要的事情来制作这个应用程序Startsmartable(Windows 键,“Platypus”,启动应用程序)。

我知道当用户想要运行应用程序时,只需双击桌面图标就可以轻松/更容易,但这个特定功能不是我的想法,所以对这个问题的奇怪的提示是无济于事。

更新

我添加了 Chandan 推荐的代码(带有我的可执行文件的名称):

public static void AddToStartup()
{
using (RegistryKey startup = Registry.CurrentUser.OpenSubKey("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run", true))
{
startup.SetValue("RoboReporter", "\"" + System.Windows.Forms.Application.ExecutablePath + "\"");
}
}

...从主窗体的加载事件调用它:

private void FormRoboReporter_Load(object sender, EventArgs e)
{
RoboReporterConstsAndUtils.AddToStartup();
}

...关闭应用程序,转到“开始”菜单并输入程序名称(“RoboReporter”),它所做的只是调出相关文件名的搜索结果。

更新 2

它所做的是让我的应用程序在计算机重新启动时运行。那不是我想要的。上面的代码向 HKEY_CURRENT_USER.Software.Microsoft.Windows.CurrentVersion.Run 添加了一个条目,如下所示(以及早于它的其他几个条目):

enter image description here

我不希望每次计算机重新启动时都启动该应用程序,因此我删除了该条目。问题仍然存在:如何让应用程序可以从“开始”菜单运行?

最佳答案

您可以将应用程序的父目录路径添加到名为 PATH 的环境变量中。

string pathvar = Environment.GetEnvironmentVariable("PATH", EnvironmentVariableTarget.Machine);
Environment.SetEnvironmentVariable("PATH", pathvar + ";" + Application.StartupPath + "\\", EnvironmentVariableTarget.Machine);

(注意添加到该变量的路径要以反斜杠\结尾,每条路径之间用分号;分隔)

将父目录的路径添加到环境变量将使所有内容都可以从“开始”菜单的搜索字段、RunCMD 快速访问。

您还可以将 EnvironmentVariableTarget.Machine 更改为 EnvironmentVariableTarget.User 以仅为当前用户修改变量。


编辑:

注意:为整个机器设置变量(通过使用 EnvironmentVariableTarget.Machine)似乎需要从一个应用程序完成时提升权限。

关于c# - 如何让我的应用程序从“开始”菜单运行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37220482/

24 4 0