windows - 通过另一个程序向 GUI 应用程序提供输入

标签 windows linux user-interface bots

我想知道的是,您如何向闭源且没有任何公共(public) API 的 GUI 应用程序提供输入。

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

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

最佳答案

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

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

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

我已经做过一次了,要做到这一点非常困难。启动程序后,请注意:不要触摸鼠标或键盘。

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

关于windows - 通过另一个程序向 GUI 应用程序提供输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12365088/

相关文章:

c++ - 为什么 QPainter 可能会拒绝在 paintEvent 内部工作?

windows - 从文本创建 COM 文件

Java native 接口(interface) GetStringUTFChars fatal error

linux - 无法通过调用另一个脚本来执行脚本

JAVA显示图像-GUI

python - ListCtrl 中的自定义 header 组织或 wxPython 中的另一个小部件

windows - 使用未记录的 CallNtPowerInformation(GetPowerRequestList..) 枚举 Windows "Power Availability Requests"

c++ - system() 使用 C++ 在 Window 7 上调用 .exe [权限问题]

c++ - 如何从全局 Hook 与应用程序进行通信?

linux - 英特尔处理器如何访问 Branch Trace Store 缓冲区?