2014-12-04 152 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後執行任何您想要的操作。