【问题标题】:Qt - c++ simulate keypressQt - C++ 模拟按键
【发布时间】:2012-02-15 16:26:43
【问题描述】:

我正在尝试在 Qt 中创建一个简单的机器人,因此需要一种在 Qt 应用程序本身之外模拟键盘按下的方法。

我已经通过使用“旧”keybd_event 成功地实现了这一点

keybd_event(Qt::Key_A,0,0, 0); // Pressing the 'A-button"

效果很好。但是当我尝试执行需要同时按下两个按钮的“全选”命令时,我无法做到。

当我在 Google 上研究该问题时,我被引用到“SendInput”函数,并显示消息“此函数 (keybd_event) 已被取代。请改用 SendInput。'

现在的问题是我对 Windows API 知之甚少,尤其是在“Qt”的上下文中,并且希望获得有关如何入门的指导。

【问题讨论】:

    标签: c++ qt keyboard sendinput


    【解决方案1】:

    keybd_event其实不是Qt函数,而是Windows Api的一部分。

    keybd_eventSendInput 都允许您发送 press 事件和 release 事件。如果你想发送组合ctrl+A你应该发送如下事件:

    press Ctrl -> press A -> release A -> release Ctrl

    如果你想使用keybd_event,你需要随后调用它4次,如果你想使用SendInput,你可以做一个4个事件的数组。

    您应该使用keyboard codes from Windows API 来模拟键盘事件,而Qt 的代码可能与Microsoft 的一致。

    另外你应该明白这个解决方案与 Qt 无关,它是 Windows 指定的。

    您刚刚找到了您需要的所有文档链接,我认为您应该开始研究它并提出更具体的问题,如果您有任何问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-04-29
      • 2011-03-04
      • 2011-11-10
      • 2020-05-02
      • 2021-03-07
      • 1970-01-01
      • 1970-01-01
      • 2011-03-23
      相关资源
      最近更新 更多