【已解决】关于检测窗口是否存在遇到的小问题
本帖最后由 anythinging 于 2022-9-3 18:03 编辑遇到个小问题,请教各位指点。
检测form2窗口是否存在的时候,如果定义了form2变量但没创建窗口,此时用wingetstate检测到的结果不准确。(目前暂时的解决的方法是定议form2=0,不知原理)
#include <AutoItConstants.au3>
#include <MsgBoxConstants.au3>
Global $form2
$form1 = GUICreate('',300,200)
$bt1 = GUICtrlCreateButton('check',20,20)
$btshow = GUICtrlCreateButton('show',70,20)
$bthide = GUICtrlCreateButton('hide',120,20)
GUISetState()
While 1
Switch GUIGetMsg()
Case -3
Exit
Case $bt1
Local $iState = WinGetState($form2)
MsgBox(262144,'$iState','Error= '&@error&@CR&'$iState= '&$iState,0)
If BitAND($iState, 1 ) Then
MsgBox(262144,$iState,'窗口存在',1)
Else
MsgBox(262144,$iState,'窗口不存在',1)
EndIf
Case $btshow
$form2 = GUICreate('form2',300,200,1,1)
GUISetState(@SW_SHOW,$form2)
Case $bthide
GUIDelete($form2)
EndSwitch
WEnd
Global $form2 未赋值时为空,WinGetState('') 很容易匹配到一个不相关的窗口,当然就不准确了。
而当赋值为数字 0 时,则是匹配一个句柄为 0 的窗口,肯定匹配不到,也就对了。 感谢指点!请问是否还有更好的方法? anythinging 发表于 2022-9-3 16:43
感谢指点!请问是否还有更好的方法?
不知代码的用途。就当前而言,赋值为 0 是最简的
页:
[1]