问:如何将keyevent发送到系统?

时间:2014-11-03 14:07:25

标签: c++ qt

我正在进行Qt项目,我希望在编程时将keyevent发送给系统。

我已经尝试过以下代码,但它不起作用,

QKeyEvent event = QKeyEvent(QEvent::KeyPress, Qt::Key_B, Qt::NoModifier);

QApplication::sendEvent(this, &event);

为了让我的问题更清晰,我正在做的是:我在我的应用中生成char,然后想要keyevent发送到User.exe,以便{{1}可以捕获IME。 (自定义input char

1 个答案:

答案 0 :(得分:0)

我认为QApplication :: sendEvent无法实现您的期望。如果您的计算机连接了键盘,则“/ dev / input”目录中有一个名为event0或event1或event3 ...的文件,并且一个文件对应于您的键盘。您可以尝试使用linux API打开文件并构造input_event,然后将事件写入文件。然后,您的应用程序将接受键事件,就像您按下键盘上的键一样。