AHK(AutoHotKey):将焦点从 InputBox 移开

AHK (AutoHotKey): Taking focus away from InputBox

调用后立即:

inputbox,inv,Scan Invoice Number:

我想将焦点从输入框转移到另一个 window,但它的行为与预期不符,在转到下一行代码之前等待用户输入。有什么方法可以覆盖此行为吗?

InputBox 使当前线程等待用户输入并因此挂起线程。在其他语言中,您会说 Thread 终止并且 ActionListener 开始侦听。多线程本身不能通过直接在 AutoHotkey 中调用新线程来主动实现,但是,您可以,如 documentation 中所述,使用热键或定时子程序启动线程。

我自己想出了以下解决方案几次,据我所知这是最干净的方法:

setTimer, continueAfterInputbox, -100   ; a negative period indicates "run once only", after a sleep of 100 ms in this case
inputbox, inv, Scan Invoice Number:
;; do things with %inv%

Return

continueAfterInputbox:
msgbox, do other cool things
return