【问题标题】:Qt: How to send an event to the operating/window system?Qt:如何向操作系统/窗口系统发送事件?
【发布时间】:2010-02-01 03:54:01
【问题描述】:

我想在一个 Qt 应用程序中创建一个事件,该事件可以由同时运行的单独 Qt 应用程序获取。正常的 sendevent 函数要求您命名将接收它的对象,但我不能使用它,我希望它像键盘按下事件一样过滤操作系统中的任何打开的程序。有谁知道这是怎么做到的吗?谢谢

【问题讨论】:

    标签: c++ qt events filter window


    【解决方案1】:

    看看Inter-Process Communication in Qt。最跨平台友好的方式是使用套接字。

    共享内存也是一种选择,但对于事件,我建议您使用一个套接字,然后您可以在接收端附加插槽以像本地事件一样处理它。

    编辑:抱歉,当我阅读其他答案时,我想我错过了真正的重点,您想制作一个类似键盘记录器的东西,可以在任何地方记录笔划。不确定那个。

    【讨论】:

      【解决方案2】:

      首先 - 它远离跨平台,不能使用 Qt 来实现这个特定功能。那么,请回答这个问题,您的目标是哪个操作系统?

      其次,您是否同时编写了两个应用程序?为什么不通过 D-bus(仅限 UNIX...)甚至通过 XMLRPC (http://doc.libqxt.org/tip/qxtrpcservice.html) 传递您的“事件”,并避免整个伪造事件业务?

      【讨论】:

      • 谢谢。是的,我都在写,而且我正在使用 kubuntu。我想使用事件的原因是因为我只是想模拟程序在其目标上运行后将如何运行
      猜你喜欢
      • 2011-06-10
      • 1970-01-01
      • 1970-01-01
      • 2012-06-02
      • 1970-01-01
      • 2011-12-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多