2014-12-02 300 views
2

我有一个应用程序,旨在尽量减少到系统托盘。那里没有问题。Windows如何从桌面快捷方式强制“最小化”状态?

我遇到的问题是,我不能确定什么的Windows是做给力的最小化状态时,我成立了一个桌面快捷方式到可执行文件并启动它,如:

enter image description here

我在窗体的构造函数中放置一些调试输出并通过快捷方式启动。我没有得到命令行参数,并检查WindowState产生Normal。然而,应用程序开始最小化到任务栏。

但是,这就是问题所在:我希望它最小化到系统托盘,就好像表单在屏幕上并且用户最小化它一样。并非所有的时候,当使用“最小化”快捷方式时,或当用户单击表单上的最小化时,当然。

编辑:好奇......我最初的测试有缺陷,因为我检查了构造函数。将该测试置于Load方法中产生了一个Minimized状态,然后我可以响应并调用我的代码以执行“最小化到托盘”。

+1

Downvoter,小心点评? – DonBoitnott 2014-12-02 20:01:27

+1

我也没有得到赞扬。 – siride 2014-12-02 20:03:06

+0

你有没有看过在互联网上发布的任何工作示例,以及在你的代码中还有'SO'是否设置了WindowState ..例如'1this.WindowState = FormWindowState.Minimized;'[App Minimize to Tray] (http://stackoverflow.com/questions/1730731/how-to-start-winform-app-minimized-to-tray)我认为你需要这个在这里我只是重新读你的问题http:// stackoverflow。 com/questions/16140627 /最小化到托盘 – MethodMan 2014-12-02 20:03:26

回答

2

Windows正在启动具有最小化主窗口参数的进程。

在C#中,您可以通过在Process.Start()中设置WindowStyle (MSDN)ProcessStartInfo来执行相同的操作。

在原生世界中,您可以使用CreateProcess (MSDN) API并将STARTUPINFO设置为wShowWindowSW_MINIMIZE

要查询窗口状态,请使用GetWindowInfo (MSDN),查看dwStyle并检查是否设置了WS_MINIMIZE。在C#中,这应该在Form.WindowState

相关问题