0

我想知道的是如何为封闭源代码且没有任何公共 API 的 GUI 应用程序提供输入。

更简洁地说,假设您打开纸牌并想通过一个程序来玩它。或者,更基本的是,您有一个带有按钮的 GUI 应用程序,并且您想通过另一个程序单击它。

我知道这个问题有点含糊,但这是我能说的最好的了。请帮助我进行一些编辑或一些评论,以使其更具体。

4

2 回答 2

1

调查SendInput()。它可用于模拟鼠标移动和按键操作。

要使用其 GUI 定位 Windows 应用程序,您可以使用它EnumWindows()来定位具有特定标题的窗口。这将提供一个窗口句柄。要赋予该窗口焦点,您可以:

  • 通过获取窗口句柄EnumWindows()
  • 用于GetWindowRect()获取窗口矩形的坐标
  • 使用 将鼠标移动到窗口范围内并使用SendInput()模拟鼠标点击SendInput()

我已经这样做过一次,而且很难做到正确。一旦你开始你的程序坐在你的手上:不要触摸鼠标或键盘。

我不知道如何在 Linux 上做这样的事情

于 2012-09-11T08:29:58.267 回答
0

假设它是 Linux 中的 X11 应用程序,您可以将进程连接到命名管道的一端,然后在管道的另一端回显 X-Input 事件。

于 2012-09-12T02:22:25.150 回答