gpt4 book ai didi

c# - Winforms 托盘应用程序和 WM_CLOSE

转载 作者:太空宇宙 更新时间:2023-11-03 15:56:52 24 4
gpt4 key购买 nike

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

我发现了一些解决方法,例如创建一个空表单并将其不透明度设置为 0(以最大程度地减少闪烁),然后显示和隐藏,但是将此描述为令人讨厌的 hack 会严重低估其丑陋程度。

最佳答案

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 发送到应用程序窗口。

关于c# - Winforms 托盘应用程序和 WM_CLOSE,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23231235/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com