【问题标题】:Inject a mouse click into mouse I/O stream programmatically以编程方式将鼠标单击注入鼠标 I/O 流
【发布时间】:2020-06-14 03:12:25
【问题描述】:

我想在游戏中的特定位置生成鼠标点击(Everquest 项目 1999)。事实证明,游戏只需要直接从端口输入鼠标。我之前使用过PyAutoGUIJava Robotpywin32 和许多类似的模块和库,但都无法在游戏内提供点击,因为它不吸收虚拟点击。 在所有互联网上都没有可能的解决方案。有没有办法像自然鼠标点击一样在 IO 流中注入鼠标点击。

import pyautogui
pyautogui.click(100, 150)

这是一个没有被游戏吸收的虚拟点击示例。

【问题讨论】:

  • Windows 还是 Linux ?
  • @ralfhtp 我的目标是 Windows,因为该游戏仅适用于 Windows。但我对这个概念很感兴趣,即使是 Linux

标签: java python c++ io


【解决方案1】:

使用pyinput 之类的库,您只能在处于焦点/前景的窗口中模拟鼠标事件,并且仅当它处于同一进程中时。如果您还想在与调用进程不同的进程(如您的情况)中通常注入或监视鼠标或键盘事件,则必须建立 mouse hookkeyboard hook在窗口中。

https://docs.microsoft.com/en-us/windows/win32/winmsg/about-hooks https://www.codeproject.com/Articles/19858/Global-Windows-Hooks

在linux中是evdev系统和xdotool

在 windows 上的 java 中,您必须像在这个库中一样调用 JNI:https://github.com/kwhat/jnativehook

另见 programmatically mouse click in another window 和 git https://github.com/boppreh/mouse

【讨论】:

    【解决方案2】:

    即使是 Windows 挂钩也无法在游戏中使用。我们最终在远程桌面服务器上打开游戏并在其上运行自动化代码,这很有效。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2010-10-13
      • 2012-05-08
      • 2018-03-20
      • 2012-08-20
      • 2012-10-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多