我想使用脚本发送键盘或鼠标输入等事件来自动化另一个程序。例如,想象一个玩游戏的机器人(虽然我不玩电子游戏)。
我想同时对几个(脚本、程序)对执行此操作。
我知道我可以使用 autoit 或 win32 API 在 Windows 上自动化我的鼠标和键盘,但是 Windows 有“活动窗口”的概念:一次只有一个活动窗口,这是可以接收输入的窗口。
由于这个“活动窗口”的概念,我无法自动化多种的一次可同时运行多个程序。
我还有什么选择?
编辑:我需要自动运行程序,而不必等待另一个程序。使用键盘快捷键切换活动窗口无法实现此目的。我还想在程序在后台自动运行的同时使用计算机。
答案1
已更新,包括限制当前用户输入的替代方案
奥图伊特 使用自动操作你可以做类似的事情
Opt("WinTitleMatchMode", 2)
While WinActive('Search')
Send("{ALT DOWN}")
Send("{TAB}")
Send("{ALT UP}")
WEnd
其中“搜索”包含窗口标题的一部分。
如果您知道窗口焦点的顺序,您可以简单地发送足够多的额外次数来到达给定的窗口。
alt+tab 的顺序始终是按照焦点的反向顺序。
的Win32 这个问题已在其他帖子中得到解答,并深入到编程中。如果您想走这条路,您必须将 Windows 消息发送到您想要的进程。我会看看:如何向窗口发送按键而不必使用 Windows API 激活它?
它似乎不太可靠,而且有很多缺陷。必须对给定应用程序处理键盘输入的方式做出假设。
我不知道您想要实现什么,我可能会建议使用虚拟机并允许该实例运行宏/脚本。这应该允许用户继续使用计算机,而不会占用用户正在使用的桌面。