2014-12-04 93 views
-3

我想建立一个应用程序来检测到Windows事件,涉及到多媒体特定事件(播放视频,播放音频和图像)。如何检测Qt中的Windows事件?

例如,如果Windows Media Player打开时,相关的事件应该被检测到。

+0

对于媒体播放器,可用的事件是[here](http://msdn.microsoft.com/en-us/library/aa912134.aspx),但正如FIO(和AFAIK)所说,没有真正的普遍支持需要。顺便说一下,关于处理win事件的问题,请看[QWidget :: nativeEvent](http://qt-project.org/doc/qt-5/qwidget.html#nativeEvent)。 – BaCaRoZzo 2014-12-04 11:38:30

+1

如果用户选择AcmeMusicPlayer作为音频文件的默认应用程序,该怎么办?此外,如果用户在媒体播放器上放置整个相册,您是否希望为每个项目添加事件?这是可怕的低估(和一个问题,无论具体的要求) – MSalters 2014-12-04 12:03:25

+0

友好提醒回答者,请不要喂这些问题的答案。我们只尝试在qt标签中回答适当的问题。 – lpapp 2014-12-05 07:40:48

回答

2

没有为没有“事件”。

您可以检测的媒体播放器的lauches(由WINAPI :: FindWindow函数)或图像浏览器。

1

我不认为这是可能的QT内置的单独功能做到这一点。你将不得不使用Windows API。取决于你真正想做什么,这可能会变得非常复杂。 如果你只是想检查,如果某个应用程序尚未启动,你可以使用FindWindow功能。我建议使用qt定时器来创建信号,您可以使用它来检查窗口是否已打开。
QTimer::singleShot(200, this, SLOT(checkForMediaPlayer())); 只需将此添加到您的QObject以及checkForMediaPlayer成员函数中,该函数将在检测到MediaPlayer后执行任何您想要的操作。