我正在c#中创建一个Windows窗体应用程序,它将在Windows启动时启动。用户还可以从桌面上的图标启动应用程序。我希望应用程序在系统托盘中最小化,如果它是从Windows启动启动的,并且如果用户点击其快捷图标启动,则处于正常的窗口状态。有没有办法检测应用程序是由用户启动还是启动?
我正在使用此代码使应用程序在启动时出现
regesiterykey.SetValue("MyApp", Application.ExecutablePath.ToString());
答案 0 :(得分:17)
您可以将命令行参数添加到“启动”快捷方式,然后检查该参数并最小化该程序。
您也可以将快捷方式设置为最小化打开。 (取决于您的GUI)(但不是注册表)
答案 1 :(得分:1)
改为使用这个:
regesiterykey.SetValue("MyApp /minimized", Application.ExecutablePath.ToString());
答案 2 :(得分:0)
当你启动你的程序时,传入一个额外的参数,如“-startup”,对于普通用户点击,不要传递这个标志。据我所知,很难从运行时间检测到它。
答案 3 :(得分:0)
命令行参数肯定是更好的方法,但也可以使用当前目录的技巧。 如果你检查程序当前目录,启动时启动的程序有Windows系统目录,不像手动执行,它有一个exe文件所在的文件夹。