-
korabok (30.11.09 21:52) [0]Цель: узнать по хенделу окна "игровое" оно или нет.
Как определить активное приложения мне понятно.
Первое что пришло на ум:
1) Определить размеры окна и сравнить их с размером экрана
2) Определить стиль окна, а именно наличие рамки и заголовка
3) Определить подключены ли библиотеки OGL/DX к приложению
Но, как определить имеет ли окно рамку и заголовок или нет?
3 пункт я вообще не представляю как сделать.
Может есть у кого еще какие-нибудь идеи?! -
0x00FF00 (30.11.09 23:12) [1]> 1) Определить размеры окна и сравнить их с размером экрана
> 2) Определить стиль окна, а именно наличие рамки и заголовка
А если я игру в оконном режиме запустил?
ИМХО, самый надёжный метод из предлорженных — это (3).
Для OpenGL могу посоветовать GetPixelFormat по DC окна, полученному с помощью GetDC(ХЕНДЛ_ОКНА).
Проанализировав его на наличие PFD_SUPPORT_OPENGL и PFD_DOUBLEBUFFER, можно с большой вероятностью утверждать, что данное окно используется для OpenGL-вывода.
http://msdn.microsoft.com/en-us/library/dd368826(VS.85).aspx -
korabok (30.11.09 23:21) [2]А в случае работы DirectX флаг PFD_DOUBLEBUFFER будет присутствовать?
-
0x00FF00 (30.11.09 23:27) [3]Не располагаю такими сведениями, т.к. не работал с DirectX.
-
> korabok (30.11.09 21:52)
> Цель: узнать по хенделу окна "игровое" оно или нет.
Единственно верный способ - вести постоянно пополняемую базу "игровых" окон и сравнивать с ней. Все остальное - ненадежно. -
Сапер не пользуется ни DirectX ни OpenGL тем не менее это игра. Как и пасьянс. Как и тьма игр, не использующих аппаратное ускорение.
-
> korabok
а зачем это понадобилось, если не секрет? -
Игорь Шевченко © (01.12.09 00:54) [7]
> Как и пасьянс.
И шарики -
korabok (01.12.09 02:31) [8]Меня интересуют только OpenGL/DirectX игры.
2DVM
Работа с интерфейсом окон. -
Kerk © (01.12.09 02:32) [9]OpenGL/DirectX используют не только игры.