2016-10-15 4 views
0

Предоставляет ли Windows какой-то механизм для обнаружения, когда приложение, работающее в полноэкранном режиме (например, игры, медиаплееры и т. Д.), Выходит из полноэкранного режима, либо возвращается в оконный режим, либо выходит из своего процесса?Обнаружение полноэкранного выхода приложения в Windows

ответ

1

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

Применяя при изменении режима, приложение может по желанию позвонить ChangeDisplaySettings/Ex() с флагом CDS_FULLSCREEN или CDS_RESET. Это отправит WM_DISPLAYCHANGE уведомления всем окнам верхнего уровня, но не сообщит им, что отображается полноэкранное окно или нет.

Что касается обнаружения завершения процесса, WMI имеет для этого событие. См. Receiving Event Notifications Through WMI.

+0

Я всегда думал, что полноэкранные приложения отличаются от полноэкранных приложений без полей. Причина этого заключалась в том, что из-за фликкера, присутствующего при создании окна, первое и отсутствие его на последнем. Не разрешает ли полноэкранные приложения владеть графикой в ​​Windows во время выполнения переднего плана? – rlam12

+0

@ rlam12 полноэкранные приложения - это просто полноэкранные окна, ничего особенного в них нет. Я не знаю мерцания, о котором вы говорите, но окно «полноэкранный» не «принимает на себя ответственность за графику», оно рисуется обычно как любое другое окно. –

+0

@ rlam12: С момента появления DWM GPU больше не используется исключительно приложением, полноэкранным или нет (см. [Роль модели драйвера дисплея Windows в DWM] (https: //blogs.msdn. microsoft.com/greg_schechter/2006/04/02/the-role-of-the-windows-display-driver-model-in-the-dwm/)). – IInspectable

Смежные вопросы