![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Детектор полноэкранных окон
demon © (2008-08-17 18:55:00)Как отследить что какое-небудь чужое приложени перешло в полноэкранный режим?
Узнавать какое именно приложение не нужно.
demon (2008-08-19 02:14:00) [21]Человеки, ведь некоторые плееры выдают такое окошко, например Aimp, или специальные плагины к винампу. Оно еще полупрозрачное в большинстве случаев.
Только вот что я подумал, глупая это затея, писать такой детектор, если можно перед выводом этого окошка проверить размеры рабочей зоны.
Германн (2008-08-19 01:34:00) [22]Блин, очепятка. не было.
Германн (2008-08-19 01:21:00) [23]
> demon © (19.08.08 01:05) [14]
>
> Ушли от сути. Ваши мысли, как лучше определить что на экране
> полноэкранное окно?
> Простой способ проверять по таймеру рабоую зону и сравнивать
> её с размкрами десктопа, или делать лавушку (правда, нипонятно
> как это дез длл сделать)?
>
А тут и сути нибыло ни разу.. Только "демонически безсвязное" описание "бреда сивой кобылы", плюс
> Renegat © (19.08.08 01:12) [15]
Renegat (2008-08-19 01:12:00) [24]ИМХО, в данном случае (в случае плеера) вывод окна сообщения является довольно индусским подходом к уведомлению юзера о чём-либо.
Лучше уж не искать по форумам, как построить антигравитатор для крыши дома, который Вы решили строить с крыши, а просто пересмотреть логику работы GUI Вашей проги =)
demon (2008-08-19 01:05:00) [25]Ушли от сути. Ваши мысли, как лучше определить что на экране полноэкранное окно?
Простой способ проверять по таймеру рабоую зону и сравнивать её с размкрами десктопа, или делать лавушку (правда, нипонятно как это дез длл сделать)?
DVM (2008-08-18 17:23:00) [26]
> А эмуляция текстового DOS режима (Norton Commander) - полноэкранка?
>
> А эмуляция DOS игр (DOOM-2) - полноэкранка?
> А включение ScreenSaver - полноэкранка?
Да, да и да.
oldman (2008-08-18 17:18:00) [27]А эмуляция текстового DOS режима (Norton Commander) - полноэкранка?
А эмуляция DOS игр (DOOM-2) - полноэкранка?
А включение ScreenSaver - полноэкранка?
etc.
> Как отследить что какое-небудь чужое приложени перешло в
> полноэкранный режим?
> Узнавать какое именно приложение не нужно.
визуально, блин...
DVM (2008-08-18 17:16:00) [28]
> demon © (18.08.08 00:51) [5]
>
> Miranda IM (точнее плагин popup.dll) умеет детектировать
> полноэкранные окна не внедряя библиотеки...
Кстати, ты на основании чего такой вывод сделал? Дело в том, что ловушку аналогичную WH_SHELL можно задействовать и без своей dll.
DVM (2008-08-18 17:12:00) [29]
> а мышкой растащил за бордер - это полноэкранный режим?
нет, бордюра не должно быть вообще, а размеры окна должны быть больше или равны десктопу.
oldman (2008-08-18 17:01:00) [30]А если я не даблкликнул по заголовку, а мышкой растащил за бордер - это полноэкранный режим?
Я понимаю, что при полноэкранном сам бордер пропадает, но "растащенное мышью" окно все равно во весь экран...
Smile (2008-08-18 11:11:00) [31]> Я всю сознательную жизнь считал, что полноэкранный режим
> - это то, что происходит с консольным окном по Alt+Enter
Alt+Enter работает в обе стороны, а не только в сторону полноэкранного режима
Игорь Шевченко (2008-08-18 10:17:00) [32]Я всю сознательную жизнь считал, что полноэкранный режим - это то, что происходит с консольным окном по Alt+Enter
Германн (2008-08-18 01:30:00) [33]Хм.
> Miranda IM (точнее плагин popup.dll) умеет детектировать
> полноэкранные окна не внедряя библиотеки...
>
demon (2008-08-18 00:51:00) [34]Miranda IM (точнее плагин popup.dll) умеет детектировать полноэкранные окна не внедряя библиотеки...
Может поставить таймер и сравнивать рабочую зону с размерами экрана через определенный промежуток времени?
DVM (2008-08-17 20:01:00) [35]
> Не ужели эти события разные, и отлавливать их нужно по разному?
все эти события приводят к появлению на экране окна размерами с десктоп, без бордюра и возможно TOPMOST. Все прекрасно отлавливается и детектируется самой системой, надо лишь вклиниться в этот процесс с помощью ловушки WH_SHELL, как это делают все нормальные приложения в частности Windows Explorer.
demon (2008-08-17 19:49:00) [36]Так... Попытаюсь обяснить на конкретных примерах:
- Когда запускаеться видеоплеер (любой) и пользователь переводит его в полноэкранный режим.
- Когда запускаеться Haда Life2.
- ACDSee в режиме просмотра, если нажать F (тоже полноэкранный режим)
Не ужели эти события разные, и отлавливать их нужно по разному?
DVM (2008-08-17 19:43:00) [37]
> Как отследить что какое-небудь чужое приложени перешло в
> полноэкранный режим?
поставить ловшку WH_SHELL, HSHELL_WINDOWSACTIVATED + lParam = fFullScreen
Anatoly Podgoretsky (2008-08-17 19:30:00) [38]> demon (17.08.2008 18:55:00) [0]
Приложение не может перейти в полноэкранный режим - это только окна могут, но и само понятие полноэкранный режим не такое уж однозначное.