回复 19# xiehuahere
我以为你懂所以没有解释~~
我第一个帖子就建议你发全码了,因为只有部分码,也懒得一一写了,所以用了最简单的Msgbox来写了个
你发的代码是在我发的之后的,注意:在关于部分,你用的是GUI,我用的是Msgbox,这类的弹窗大多数都是阻断型函数,所以在打开Msgbox时,脚本已经暂停了,虽然还是接收到消息,但却无法响应~~
看下面的就可以(替换成了你自己的)
#include <Constants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <StaticConstants.au3>
#include <GUIButton.au3>
Opt("GUIOnEventMode", 1)
Opt("trayOnEventMode", 1)
TraySetClick(8)
Opt("TrayMenuMode", 3)
$win = GUICreate("test", 251, 160, 482, 287)
GUISetOnEvent(-3, '_exit')
GUISetState(1)
$child=GUICreate('子窗体',100,100)
GUISetState(1)
GUISetOnEvent(-3, '_exit')
$about=TrayCreateItem('关于')
TrayItemSetOnEvent(-1, "_exit")
TrayCreateItem('')
$exit = TrayCreateItem("退出")
TrayItemSetOnEvent(-1, "_exit")
While 1
Sleep(5000)
WEnd
Func _exit()
Select
Case WinGetHandle('[active]')=$win
MsgBox(0,@TRAY_ID,'从窗口中退出!',0,$win)
Exit
Case WinGetHandle('[active]')=$child
MsgBox(0,0,'关闭子窗口!',0,$child)
GUIDelete($child)
Case @TRAY_ID=$exit
MsgBox(0x40000,0,'从托盘中退出!',2)
Exit
Case @TRAY_ID=$about
_About()
EndSelect
EndFunc ;==>_exit
Func _About()
TrayItemSetState($About, $TRAY_UNCHECKED + $TRAY_DISABLE)
$hWinAbout = GUICreate("About", 300, 200, -1, -1, Bitor($WS_CAPTION,$WS_SYSMENU), $WS_EX_TOPMOST)
GUISetState()
EndFunc
|