Обнаруживать, есть ли у пользователя какое-либо приложение, работающее в полноэкранном режиме

Я сделал приложение-уведомление в С#, которое сидит на панели задач и отображает воздушный шар, когда я что-то получаю от него, подобно Google Talk, когда вы получаете новое письмо, но в момент его игнорирования, если я запускаю приложение на полноэкранном режиме или нет, и просто это работа.

Как я могу обнаружить и убедиться, что приложение находится в полноэкранном режиме? Я не имею в виду максимизацию (поскольку приложение может быть максимально на вашем экране, но все еще не в полноэкранном режиме), но истинно полноэкранный.

Например, когда вы запускаете игру, большинство из них будет работать в полноэкранном режиме.

Изначально GetForegroundWindow() и GetWindowRect() пришли мне в голову, но даже в этом случае я мог бы сделать окно более крупным, чем мой экран, если я не на полном экране, что бы не помогло мне, поэтому мне интересно, есть ли другие флаги или способы приблизиться к этому?

Ответ 1

Для PowerPoint, см. эту статью MS KB здесь:    http://support.microsoft.com/kb/913045

Заставка: Windows API: FindWindow ("WindowsScreenSaverClass"). (Для получения дополнительной информации см. эту веб-статью: http://bobmoore.mvps.org/Win32/w32tip22.htm - есть более детальный способ сделать это, но я думаю, что FindWindow будет работать нормально для вас)

Чтобы определить, используется ли полноэкранная игра: IDirect3DDevice9 :: TestCooperativeLevel http://msdn.microsoft.com/en-us/library/bb174472(VS.85).aspx

В противном случае, я думаю, что вы на правильном пути с GetForegroundWindow, GetWindowRect и другими API позиционирования окна.

Ситуация усложняется, если у вас более одного монитора, поэтому не забывайте, что этот сценарий относится к вашему приложению.