在对话框中单击“确定”

时间:2018-02-24 19:21:02

标签: user-interface button automation windows-10 autoit

我在Windows 10启动后运行程序,它给了我附加的对话框。我需要做的就是自动点击OK按钮。我写的剧本不起作用:

WinActivate("RoomView Express Login")

If WinActivate("RoomView Express Login") Then
   ControlClick("RoomView Express Login", "", "[CLASS:Button; INSTANCE:3]")
EndIf

如何正确地做到这一点?我附上了按钮的AutoIt窗口信息。

2 个答案:

答案 0 :(得分:0)

  

我写的脚本到目前为止还没有工作......

可能在目标窗口出现之前执行。根据{{​​3}}:

  

暂停执行脚本,直到请求的窗口存在。

还会返回一个句柄。例如:

Global Const $g_iTimeout  = 0
Global Const $g_sWndTitle = 'RoomView Express Login'
Global Const $g_sWndText  = ''
Global Const $g_sControl  = '[CLASS:Button; INSTANCE:3]'

Global       $g_hWnd      = WinWait($g_sWndTitle, $g_sWndText, $g_iTimeout)
Global       $g_hCtrl     = ControlGetHandle($g_hWnd, $g_sWndText, $g_sControl); Or ControlGetHandle($g_sWndTitle, $g_sWndText, $g_sControl)

ControlClick($g_hWnd, $g_sWndText, $g_hCtrl); Or ControlClick($g_sWndTitle, $g_sWndText, $g_sControl)

Documentation - Function Reference - WinWait()

答案 1 :(得分:0)

While Not WinExists("RoomView Express Login")
   Sleep(50)
WEnd

If WinActivate("RoomView Express Login") Then
   ControlClick("RoomView Express Login", "", "[CLASS:Button; INSTANCE:3]")
EndIf

这是我的解决办法