我想知道的是如何为封闭源代码且没有任何公共 API 的 GUI 应用程序提供输入。
更简洁地说,假设您打开纸牌并想通过一个程序来玩它。或者,更基本的是,您有一个带有按钮的 GUI 应用程序,并且您想通过另一个程序单击它。
我知道这个问题有点含糊,但这是我能说的最好的了。请帮助我进行一些编辑或一些评论,以使其更具体。
我想知道的是如何为封闭源代码且没有任何公共 API 的 GUI 应用程序提供输入。
更简洁地说,假设您打开纸牌并想通过一个程序来玩它。或者,更基本的是,您有一个带有按钮的 GUI 应用程序,并且您想通过另一个程序单击它。
我知道这个问题有点含糊,但这是我能说的最好的了。请帮助我进行一些编辑或一些评论,以使其更具体。
调查SendInput()
。它可用于模拟鼠标移动和按键操作。
要使用其 GUI 定位 Windows 应用程序,您可以使用它EnumWindows()
来定位具有特定标题的窗口。这将提供一个窗口句柄。要赋予该窗口焦点,您可以:
EnumWindows()
GetWindowRect()
获取窗口矩形的坐标SendInput()
模拟鼠标点击SendInput()
我已经这样做过一次,而且很难做到正确。一旦你开始你的程序坐在你的手上:不要触摸鼠标或键盘。
(我不知道如何在 Linux 上做这样的事情)
假设它是 Linux 中的 X11 应用程序,您可以将进程连接到命名管道的一端,然后在管道的另一端回显 X-Input 事件。