如何处理自定义页面的 WM_CLOSE 消息?
当用户关闭对话框时,我想在系统托盘中添加应用程序(使用 NotifyIcon 插件)。
有任何想法吗?
为什么是 WM_CLOSE?
NSIS 提供了几种处理安装程序退出的方法。
您可以使用.onUserAbort, .onInstFailed, .onInstSuccess or .onGUIEnd
回调来处理各种情况。
.onGUIEnd每次都会触发(在窗口关闭后)
.onInstSuccess在安装成功时触发,就在安装窗口关闭之前
.onInstFailed当用户在安装失败后点击“取消”按钮时
.onUserAbort当用户点击“取消”按钮时,安装尚未失败。
如您所见,所有案例都已处理,请参阅 NSIS 手册了解详细信息。
正如 Slappy 所说,如果您只需要“我在做某事时还活着”,那么 .onGUIEnd就是您的朋友:
# This callback is called right after the installer window closes.
Function .onGUIEnd
# Create notify icon (will be always at tray), with default installer icon.
NotifyIcon::Icon /NOUNLOAD "yitb" 103 "Just a tip" "Balloon!" "Cool!"
# Launch your process here
# Remove tray icon.
NotifyIcon::Icon "r"
FunctionEnd
如果您正在寻找“最小化到托盘”选项来隐藏 UI,并能够通过单击图标将其恢复,然后检查HideWindow和ShowWindow。