我正在编写一个小脚本来自动化注册扑克锦标赛的过程,同时玩其他几张桌子。大堂窗口在后台,在前台有其他桌子在玩的时候弹出。所以为了注册,我需要在前台设置大厅(ctrl + 1)并防止应用程序弹出其他表(我使用了重复循环来执行此操作,但我不确定这是否是最好的方法)。
我不明白为什么,当我将这些延迟设置为 0.5 或 0.2 时,脚本按预期工作,否则如果我在没有它们的情况下运行脚本,它就不起作用(不点击大厅中的注册按钮)。
这很关键,因为在这 0.5 秒内可能会有其他桌子突然出现并从主大厅窃取焦点。请注意,我使用像素坐标来单击按钮,因为它是非 Cocoa 应用程序并且不允许我轻松单击按钮。
我该如何解决这个问题?
--REGISTRATION PROCESS
--make sure we complete the reg process without other tables popping up and stealing focus from the tourney reg window
set done to false
repeat until done is true
delay 0.5
--Lobby focused
tell application "System Events"
set frontmost of process "PokerStarsIT" to true
keystroke "1" using command down
delay 0.2
end tell
--Start the registration process: click "register" button.
tell application "PokerStarsIT"
do shell script quoted form of POSIX path of mouseToolsPath & " -x " & (xCoordinate as text) & " -y " & (yCoordinate as text) & " -rightClick"
set done to true
end tell
end repeat