我想知道的是,您如何向闭源且没有任何公共(public) API 的 GUI 应用程序提供输入。
为了更简洁,假设您打开纸牌并希望通过程序来玩它。或者,更基本的是,您有一个带按钮的 GUI 应用程序,您想要通过另一个程序单击它。
我知道这个问题有点含糊,但我只能这么说了。请帮助我进行一些编辑或评论以使其更具体。
最佳答案
调查 SendInput()
.它可用于模拟鼠标移动和按键操作。
要使用其 GUI 定位 Windows 应用程序,您可以使用 EnumWindows()
找到具有特定标题的窗口。这将提供一个窗口句柄。要赋予该窗口焦点,您可以:
- 通过
EnumWindows()
获取窗口句柄 - 使用
GetWindowRect()
获取窗口矩形的坐标 - 使用
SendInput()
将鼠标移动到窗口范围内,并使用SendInput()
模拟鼠标点击
我已经做过一次了,要做到这一点非常困难。启动程序后,请注意:不要触摸鼠标或键盘。
(我不知道如何在 Linux 上做这样的事情)
关于windows - 通过另一个程序向 GUI 应用程序提供输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12365088/