我正在尝试在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”的情况下,并希望获得如何入门的指导。
答案 0 :(得分:1)
keybd_event
实际上不是Qt函数,而是Windows Api的一部分。
keybd_event
和SendInput
都允许您发送按事件和发布事件。如果您想发送组合ctrl+A
,您应该发送如下事件:
press Ctrl -> press A -> release A -> release Ctrl
如果你想使用keybd_event
,你需要随后调用它4次,如果你想使用SendInput
,你可以制作4个事件的数组。
你应该使用keyboard codes from Windows API来模拟键盘事件,而Qt的代码可能与微软的代码重合。
此外,您应该了解此解决方案与Windows指定的Qt无关。
您刚刚找到了所需文档的所有链接,我认为您应该开始研究并提出更具体的问题,如果您有任何问题。