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

时间:2010-05-31 15:45:00

标签: c#

我正在c#中创建一个Windows窗体应用程序,它将在Windows启动时启动。用户还可以从桌面上的图标启动应用程序。我希望应用程序在系统托盘中最小化,如果它是从Windows启动启动的,并且如果用户点击其快捷图标启动,则处于正常的窗口状态。有没有办法检测应用程序是由用户启动还是启动?

修改

我正在使用此代码使应用程序在启动时出现

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

4 个答案:

答案 0 :(得分:17)

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

您也可以将快捷方式设置为最小化打开。 (取决于您的GUI)(但不是注册表)

答案 1 :(得分:1)

改为使用这个:

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

答案 2 :(得分:0)

当你启动你的程序时,传入一个额外的参数,如“-startup”,对于普通用户点击,不要传递这个标志。据我所知,很难从运行时间检测到它。

答案 3 :(得分:0)

命令行参数肯定是更好的方法,但也可以使用当前目录的技巧。 如果你检查程序当前目录,启动时启动的程序有Windows系统目录,不像手动执行,它有一个exe文件所在的文件夹。