找回密码
 加入
搜索
查看: 3273|回复: 9

[AU3基础] 这个托盘菜单为什么会卡住?

  [复制链接]
发表于 2010-7-27 12:31:06 | 显示全部楼层 |阅读模式
奇怪的是,当嵌入了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
发表于 2010-7-27 12:40:40 | 显示全部楼层
因为IE失去响应了?

评分

参与人数 1金钱 +20 收起 理由
afan + 20

查看全部评分

 楼主| 发表于 2010-7-27 13:04:04 | 显示全部楼层
回复 2# Ziya


  谢谢回复。
但实际上IE是很正常的。只要一点托盘图标就卡住了。不点就完全正常。
发表于 2010-7-27 13:40:03 | 显示全部楼层
winxp sp3下测试无楼主所描述的情况。
 楼主| 发表于 2010-7-27 17:07:51 | 显示全部楼层
winxp sp3下测试无楼主所描述的情况。
3mile 发表于 2010-7-27 13:40



    兄弟你多点两下托盘图标。。
发表于 2010-7-27 19:03:17 | 显示全部楼层
回复 5# itljl
vista sp2下测试无问题。
点了无数次,代码无问题
发表于 2010-7-28 01:18:15 | 显示全部楼层
看来是人品问题了
发表于 2010-7-28 06:55:25 | 显示全部楼层
xp sp3没出现楼主的情况
发表于 2010-7-28 05:04:31 | 显示全部楼层
还真没问题.
 楼主| 发表于 2010-8-10 18:41:19 | 显示全部楼层
SP2有这种情况。。
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-11-15 10:44 , Processed in 0.081158 second(s), 27 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表