【问题标题】:Simulate mouse and keyboard input in C++在 C++ 中模拟鼠标和键盘输入
【发布时间】:2021-06-23 09:24:51
【问题描述】:

我正在寻找一种在 C++ 中模拟鼠标和键盘输入的方法。我正在寻找一个可以帮助我实现这一目标的跨平台库。有什么建议吗?

目标平台是桌面平台...仅限 Linux、Mac 和 Windows。

【问题讨论】:

  • 投票结束作为工具记录

标签: c++ cross-platform


【解决方案1】:

不,输入设备模拟非常特定于平台,即使在单个平台上也很挑剔。无论出于何种目的,它都不是一种强大的技术,因此您找不到好的库来实现它。

一旦您掌握了基本的 API,最困难的部分就是让设备在操作系统看来是真实的。您希望以适度高的频率发送逐渐的鼠标移动更新,就像鼠标一样,以及点击和按键之间的合理延迟。执行事件时间线和制作基本几何图形可能会得到 SDL 等游戏库的帮助。

如果您忽略计时,操作系统可能会减少鼠标运动、消除按钮抖动、重新排列运动和点击的顺序、在使用触控板时忽略按键等等。我差不多 10 年前就编写了这样一个工具。

【讨论】:

  • 我查看了 SDL 并与 SDL irc 中的一些人进行了交谈,但他们似乎认为它不允许在除为其编写的应用程序之外的任何东西上按键。也许他们不知道,但它似乎是真实的。如果你知道,我会试一试。
  • @Goddard SDL 将帮助您生成所需操作的时间表并按时调用您的回调。我没有建议它会生成按键。
  • 我明白了……似乎在 C/C++ 中找到解决方案非常困难。我基本上已经放弃了寻找可以帮助我实现目标的现有库。
  • @KimJongWoo 您需要在他的问题下发表您的评论,而不是我的回答。他没有收到你的消息。
【解决方案2】:

我开了这样一个图书馆,也许你想看一眼。 https://github.com/pythoneer/XInputSimulator

它处于早期状态,并且在编写时有点错误。但我希望它越来越好:)

【讨论】:

    【解决方案3】:

    虽然输入库是特定于平台的,GUI 也是,但是有一些抽象库可用于 wxWdigets 和 Qt,它们隐藏了复杂性,对于输入,我发现这个很有趣

    https://github.com/jkuhlmann/gainput

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-06-01
      • 1970-01-01
      • 1970-01-01
      • 2011-12-09
      • 2013-12-27
      • 1970-01-01
      相关资源
      最近更新 更多