Qt - c ++模拟按键

时间:2012-01-21 11:43:15

标签: c++ qt keyboard sendinput

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

我通过使用“old”keybd_event

成功实现了这一目标
keybd_event(Qt::Key_A,0,0, 0); // Pressing the 'A-button"

这很好。但是当我试图执行一个“全选”命令时,我无法做到这一点,这个命令需要同时按下两个按钮。

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

现在的问题是我对Windows API知之甚少,特别是在“Qt”的情况下,并希望获得如何入门的指导。

1 个答案:

答案 0 :(得分:1)

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

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

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

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

你应该使用keyboard codes from Windows API来模拟键盘事件,而Qt的代码可能与微软的代码重合。

此外,您应该了解此解决方案与Windows指定的Qt无关。

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