2010-08-21 155 views
10

我在C#中創建了一個通知程序,位於任務欄上,當我從中獲取某些內容時會顯示一個氣球,類似於Google Talk,當您收到新電子郵件時,忽略我是否在全屏運行應用程序,只是做這件事。檢測用戶是否有全屏運行的應用程序

如何檢測並確保應用程序處於全屏模式?我不是說最大化(因爲應用程序可以在屏幕上最大化,但仍然不是全屏),但是真正的全屏。

例如,當您運行遊戲時,大部分遊戲都將以全屏模式運行。

最初GetForegroundWindow()GetWindowRect()來到我的腦海,但即使這樣我就可以使一個窗口去更大然後我的屏幕上,如果我不是全屏這不會幫助我,所以我想知道是否有其他標誌或方式來處理這個?

+0

雖然我不知道確切的答案,但您所描述的內容看起來像全屏專有模式。 – 2010-08-21 05:19:05

+0

是Fullscreen Exclusive Mode這個術語用於確定嗎?我不確定這個詞會是什麼...... – Prix 2010-08-21 08:36:02

回答

4

對於PowerPoint,看到這個MS KB文章在這裏: http://support.microsoft.com/kb/913045

屏幕保護程序:Windows API的:FindWindow函數( 「WindowsScreenSaverClass」)。 (更多詳情請參閱本網站文章:http://bobmoore.mvps.org/Win32/w32tip22.htm - 它有一個更detailsd方式做到這一點,但我認爲FindWindow函數將工作對你合適)

爲了檢測是否全屏遊戲中使用:的IDirect3DDevice9 :: TestCooperativeLevel http://msdn.microsoft.com/en-us/library/bb174472(VS.85).aspx

否則,我認爲你在GetForegroundWindow,GetWindowRect和其他窗口定位API的正確路徑。

事情變得複雜,你有多個顯示器 - 所以不要忘記,因爲它涉及到你的應用程序的情況。

+1

謝謝,我會檢查,但我正在尋找一個更加通用的查找,不得不通過所有這些來檢查它會有點痛苦。 – Prix 2010-08-21 08:36:41

相關問題