C# 如何检测应用程序是从启动时启动还是由用户启动?

C# 如何检测应用程序是从启动时启动还是由用户启动?,c#,C#,我正在用c语言制作一个windows窗体应用程序,它将在windows启动时启动。用户还可以从桌面上的图标启动应用程序。如果从windows启动启动应用程序,我希望该应用程序在系统托盘中最小化,如果通过用户单击其快捷方式图标启动,则该应用程序处于正常windows状态。是否有一种方法可以检测应用程序是由用户启动还是由启动启动 编辑 我使用此代码使应用程序在启动时显示 regesiterykey.SetValue("MyApp", Application.ExecutablePath.ToStri

我正在用c语言制作一个windows窗体应用程序,它将在windows启动时启动。用户还可以从桌面上的图标启动应用程序。如果从windows启动启动应用程序,我希望该应用程序在系统托盘中最小化,如果通过用户单击其快捷方式图标启动,则该应用程序处于正常windows状态。是否有一种方法可以检测应用程序是由用户启动还是由启动启动

编辑 我使用此代码使应用程序在启动时显示

regesiterykey.SetValue("MyApp", Application.ExecutablePath.ToString());

您可以向启动快捷方式添加命令行参数,然后检查该参数并最小化程序


您可能还可以将快捷方式设置为“打开”“最小化”。(取决于您的GUI)(但不适用于注册表)

当您将程序置于启动状态时,请传入一个附加参数,如“-startup”,对于普通用户单击,请勿传入此标志。据我所知,很难从运行时检测到它。

使用此选项:

regesiterykey.SetValue("MyApp /minimized", Application.ExecutablePath.ToString());

命令行参数当然是更好的方法,但也可以使用当前目录的技巧。
若您选中程序当前目录,则从启动时启动的程序具有Windows系统目录,而手动执行则具有exe文件所在的文件夹。

+1。使命令行参数
/runminimized
,以便查看启动程序的任何人都清楚您的意思。