繁体   English   中英

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

[英]How to detect whether application started from startup or started by user?

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

编辑

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

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

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

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

改为使用这一个:

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM