就我而言,有时某个按钮会存在而且不存在。
有没有办法使用AutoHotkey检查窗口上是否存在某个按钮?
答案 0 :(得分:2)
如果将ControlGet与命令一起使用且控件不存在,则ErrorLevel将设置为1.
您可以使用ControlGet来获取控件的窗口句柄(HWND)。如果控件存在,窗口句柄将放在输出var中,ErrorLevel将设置为0,否则输出var将为空,ErrorLevel将为1.
在下面的示例中,前两行获取记事本的“关于”屏幕上“确定”按钮的窗口句柄(当然必须显示关于屏幕才能使其工作)并在MsgBox中显示结果。 Ok按钮的ClassNN是Button1。
对于具有ButtonN的ClassNN且不存在的控件而言,后两行是相同的。
ControlGet, Handle, Hwnd,, Button1, About Notepad ahk_class #32770
MsgBox Handle: %Handle%`n`nError: %ErrorLevel%
ControlGet, Handle, Hwnd,, Button2, About Notepad ahk_class #32770
MsgBox Handle: %Handle%`n`nError: %ErrorLevel%
答案 1 :(得分:0)
这是notepadplusplus_toogle_find_window.ahk
中使用ControlGet
的代码示例:
; Button1 is the class name for the title bar and close button of the results pane when docked
ControlGet, OutputVar, Visible,, Button1, Notepad++
if ErrorLevel = 0
{
If OutputVar > 0
{
; Found it docked
Open := 1
; Get the size and coordinates of the title bar and button
ControlGetPos, X, Y, Width, Height, Button1
; Set the coordinates of the close button
X := Width - 9
Y := 5
; Send a click
ControlClick, Button1,,,,, NA x%X% y%Y%
}
}