找回密码
 加入
搜索
查看: 3258|回复: 0

[BUG报告] 3.3.1.6 WinActivate有时可以让隐藏的窗口显示出来

[复制链接]
发表于 2009-12-4 13:47:30 | 显示全部楼层 |阅读模式
#cs
WinActivate 激活指定的窗口,使其成为活动窗口,即使在窗口最小化的情况下仍能正常工作
补:某些情况下也可以使 隐藏且最小化 的窗体显示出来
    但这种情况下显示出来的窗体不能响应窗体上控件的 OnEvent 事件(可以放个button试下)
运行环境:
    Win Server 2003 sp2 ee
     autoIt 3.3.1.6 --论坛的汉化版
#ce

;附上2个例子:
#include <WindowsConstants.au3>
$Form1 = GUICreate("ffformmm", 241, 233, -1, -1)
GUICtrlSetCursor(-1, 0)
GUISetState()
;运行到这里前把窗口最小化可以让 WinActivate 有@sw_show的功能
Sleep(3210)
GUISetState(@SW_HIDE)
WinActivate("ffformmm")
MsgBox(0,"","现在窗口有无出现?","",$Form1)
;第二个例子---证明显示出来的窗体不能响应窗体上控件的 OnEvent 事件(可以自己放个button试下)
#NoTrayIcon
Opt("guiOnEventMode", 1)
Opt("trayMenuMode", 1)
Opt("trayOnEventMode", 1)
#include <ButtonConstants.au3>
#include<Constants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>

$Form1 = GUICreate("关于Winactivate", 241, 233)
TraySetOnEvent($TRAY_EVENT_PRIMARYDOWN, "TrayMsg")
GUISetOnEvent($GUI_EVENT_MINIMIZE, "Something")
GUISetOnEvent($GUI_EVENT_CLOSE, "Something")
GUISetState()
TraySetState()
TraySetToolTip("isItBug?")

While 1
     Sleep(99999)
WEnd

Func Something()
        Select
                Case @GUI_CtrlId = $GUI_EVENT_MINIMIZE
                        GUISetState(@SW_HIDE)
                Case @GUI_CtrlId = $GUI_EVENT_CLOSE
                        Exit
        EndSelect
EndFunc   ;==>Something

Func TrayMsg()
        Switch @TRAY_ID 
                Case $TRAY_EVENT_PRIMARYDOWN
                        If not WinExists("关于Winactivate") Then
                                MsgBox(0,"","没有“关于Winactivate”窗口","",$Form1)
                        Else
                                MsgBox(0,"","存在“关于Winactivate”窗口","",$Form1)
                                ;上行代码改成“ MsgBox(0,"","存在“关于Winactivate”窗口") ”就可以让 Form1 显示了
                                WinActivate("关于Winactivate")
                        EndIf
        EndSwitch
EndFunc   ;==>TrayMsg
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-4-20 21:20 , Processed in 0.072967 second(s), 19 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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