如何在 Windows 启动时隐藏 C# 程序,但在正常打开程序时不隐藏?

How do I hide a C# program at Windows startup, but not when opening the program normally?

我有一个 (.NET) 程序可以在 Windows 启动时自动启动。但是,我不想显示主 GUI window(我会把它隐藏在托盘中)。

但是,我当然希望 window 在用户以正常方式从 taskbar/quicklaunch 打开程序时显示。

我可以使用什么代码来解决这个问题?

要添加我用来在 Windows 重启时加载程序的注册表项,代码如下:

RegistryKey rk = Registry.CurrentUser.OpenSubKey("SOFTWARE\Microsoft\Windows\CurrentVersion\Run", true);

rk.SetValue(softwareName, Application.ExecutablePath.ToString());

当您在自动 运行 部分注册程序时,附加一个命令行键,例如/silent.

在程序中,处理这个键可以隐藏自己。

相关阅读:How can I detect that my program was run from Task Scheduler, or my custom shortcut, or a service, or whatever.

只需在启动快捷方式或注册表的 运行 项中添加一个命令行参数,例如 /hidewindow

然后在 main(string[] args) 中检查是否 args.Any(a => a == "/hidewindow") 并且不要显示你的 window。