奇怪的是,当嵌入了IE后,托盘图标,经常性点击会卡住,菜单出来是空白,甚至GUI也卡住了,是什么原因呢?#Region ;**** 参数创建于 ACNWrapper_GUI ****
#EndRegion ;**** 参数创建于 ACNWrapper_GUI ****
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <Constants.au3>;托盘菜单
;~ Opt("GUIOnEventMode", 1)
Global $Title = "Form1"
;---------------------------------------------------
;托盘菜单
Opt("TrayMenuMode", 2 + 1) ;没有默认的(暂停脚本和退出)菜单.
Opt("trayOnEventMode", 1) ;应用 OnEvent 函数于系统托盘.
$TrayMenu1 = TrayCreateItem("显示界面") ;创建第一个菜单项
TrayItemSetOnEvent(-1, "TrayMsg") ;注册第一个菜单项的(被点下)事件
$TrayMenu2 = TrayCreateItem("隐藏界面") ;创建第二个菜单项
TrayItemSetOnEvent(-1, "TrayMsg") ;注册第二个菜单项的(被点下)事件
TrayCreateItem("") ;
$TrayMenu4 = TrayCreateItem("关于(&A)") ;创建第三个菜单项
TrayItemSetOnEvent(-1, "TrayMsg") ;注册第二个菜单项的(被点下)事件
$TrayMenu3 = TrayCreateItem("退出(&Q)") ;创建第三个菜单项
TrayItemSetOnEvent(-1, "TrayMsg") ;注册第二个菜单项的(被点下)事件
TraySetOnEvent($TRAY_EVENT_PRIMARYDOUBLE, "TrayMsg") ;注册鼠标左键双击事件(只能在 TrayOnEventMode 设置为 1 时才能使用)
;~ TraySetOnEvent($TRAY_EVENT_SECONDARYUP, "TrayMsg") ;注册鼠标右键双击事件(只能在 TrayOnEventMode 设置为 1 时才能使用)
TraySetState()
;---------------------------------------------------
;加载WEB
$url = "http://www.google.cn/music/top100/player_page?id=S015c8052fec27fc9&type=song&autoplay=true"
$Form1 = GUICreate("test", 445, 205, Default, Default, Default, Default)
$1 = ObjCreate("Shell.Explorer.2")
$2 = GUICtrlCreateObj($1, -155, -120, 780, 1024)
$1.navigate($url)
GUISetState(@SW_SHOW)
;---------------------------------------------------
;主循环
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
If MsgBox(32 + 1, "提示", "确定要退出?") = 1 Then
Exit
EndIf
Case $GUI_EVENT_MINIMIZE ;关闭,最小化
GUISetState(@SW_HIDE, $Form1)
EndSwitch
WEnd
;---------------------------------------------------
;托盘函数
Func TrayMsg()
Switch @TRAY_ID ;选择产生消息的 TrayItem 或其它特殊事件(如鼠标左键双击事件)
Case $TRAY_EVENT_PRIMARYDOUBLE
If WinGetState($Form1) <> 2 Then ;2,可见
GUISetState(@SW_SHOW, $Form1) ;显示窗口
GUISetState(@SW_RESTORE, $Form1);还原窗口
Else
GUISetState(@SW_HIDE, $Form1) ;显示窗口
EndIf
WinActivate($Form1);激活窗口
Case $TrayMenu2
GUISetState(@SW_HIDE, $Form1)
Case $TrayMenu3
If MsgBox(32 + 1, "22", "22?") = 1 Then
Exit
EndIf
Case $TrayMenu4
MsgBox(64 + 1, "11", "11")
EndSwitch
EndFunc ;==>TrayMsg
|