【发布时间】:2019-04-25 18:03:29
【问题描述】:
我正在为特定窗口中的一些预先确定的点击和发送编写脚本。
有时点击不会在所需位置结束,它可能会点击不同的窗口,现在我脚本的所有后续输入都将发送到错误的窗口/位置。
这是代码的执行部分,我似乎无法做到 100% 一致。
CoordMode, Mouse, Window
SetTitleMatchMode, 2
<!p::
Click, 60, 270
Send, %dp%{Tab}{Tab}{Tab}{Tab}%e1%{Tab}^a ; Plate thickness and layout
Send, %PLh% ; Plate Height
Click, 60, 130
Sleep 100
Click, 263, 45
Sleep 20
Click, 263, 45
Sleep 20
Click, 370, 48
Sleep 100
Click, %Mx%, %My% ; Bolt Diameters (M16: 40, 135) (M20: 40, 150) (M24: 40, 170) (M27: 40, 190) (M30: 40, 210)
Sleep 50
Click, 60, 160
Send, {Tab}{Tab}{Tab}%w1%{Tab}{Tab}^a ; Hor Bolt center distance
Sleep 50
Send, 0{Tab}^a ; Edge distance
Send, 0 ; Edge distance
Sleep 100
Click, 60, 190
Sleep 100
Send, {Tab}{Tab}%e3% ; Vert interm distance
Send, {Tab}{Tab}{Tab}{Tab}{Tab}%e2% ; vert outside bolt dist
Click, 60, 295
Sleep 100
Send, {Tab}%Stiff%{Tab}{Tab}{Tab}%Stiff% ; Stiffener thickness
Sleep 100
Click, 60, 320
Sleep 100
Send, %Weld%{Tab}{Tab}{Tab}%Weld%{Tab}{Tab}%Weld%{Tab}{Tab}%Weld%{Tab}{Tab}%Weld% ; Weld thickness
Return
如果这部分代码中的任何点击导致激活不需要的窗口,那么我希望我的脚本停止并发出警告。
我可以为每次点击插入一个 If Winactive 语句,但这对我来说感觉很不雅,也许有更好的解决方案?
(我也可以问如何使这个脚本更加一致,我已经尝试通过插入睡眠命令来做到这一点,但这是一个不同的问题。罪魁祸首似乎是单击下拉框,但很难确定,因为我无法通过逐行运行来调试 AHK 代码)
提前致谢
【问题讨论】:
-
你应该查看ControlSend command
-
好的,谢谢。
标签: autohotkey