Winforms托盘应用程序和WM_CLOSE

时间:2014-04-22 22:16:14

标签: c# .net winforms windows-installer system-tray

如何编写一个WinForms应用程序,除了托盘图标之外没有任何可见元素,同时如果文件正在使用,Windows Installer允许应用程序关闭?据我所知,Windows Installer会向应用程序的主窗口发送WM_CLOSE消息。我假设“主窗口”由ApplicationContext的MainForm属性指示。在我看来,为了使这种机制起作用,表格必须至少显示一次。

我找到了一些解决方法,例如创建一个空表单并将其不透明度设置为0(以最小化闪烁)然后显示和隐藏,但将其描述为讨厌的黑客会严重低估其丑陋。

1 个答案:

答案 0 :(得分:0)

Windows Installer不会发送任何WM_CLOSE消息。这可能会有所帮助:

http://haishibai.blogspot.com/2010/02/complete-tutorial-patch-restart-your.html

情况稍有不同但如果您希望Windows Installer告诉您的应用何时关闭,可能会让您入门。

在使用Restart Manager的最新操作系统版本中,将检测到托盘应用程序。回到Windows XP,它没有被检测到。

在WiX世界中,有一个CloseApplication实用程序自定义操作,它将WM_CLOSE发送到应用程序窗口。