我有一个旨在最小化到系统托盘的应用程序。没有问题。
我遇到的问题是,当我为该可执行文件设置桌面快捷方式并启动它时,我无法确定 Windows 正在做什么来强制最小化状态,例如:
我在表单的构造函数中放置了一些调试输出并通过快捷方式启动。我没有得到任何命令行参数,并且 WindowState
的检查结果为 Normal
。然而,应用程序开始最小化到任务栏。
然而,这就是问题所在:我希望它开始最小化到系统托盘,就像表单在屏幕上并且用户将其最小化一样。当然,不是所有时候,只是在使用“最小化”快捷方式时,或者当用户单击表单上的“最小化”时。
编辑: 出于好奇...我的初始测试存在缺陷,因为我 checkin 了构造函数。将测试置于 Load
方法中会产生一个 Minimized
状态,然后我可以对此使用react并调用我的代码来执行“最小化到托盘”。
最佳答案
Windows 正在启动带有参数的进程以最小化主窗口。
在 C# 中,您可以通过设置 WindowStyle (MSDN) 来完成相同的操作在 ProcessStartInfo
中用于 Process.Start()
。
在本地世界中,您将使用 CreateProcess (MSDN) API 并传递一个 STARTUPINFO , 将 wShowWindow
设置为 SW_MINIMIZE
。
查询窗口状态,使用GetWindowInfo (MSDN) ,查看 dwStyle
并检查是否设置了 WS_MINIMIZE
。在 C# 中,这应该在 Form.WindowState 中.
关于c# - Windows 如何从桌面快捷方式强制 "minimized"状态?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27257808/