Показать сообщение отдельно
  #1  
Старый 01.02.2017, 19:38
Аватар для Lothlorien
Lothlorien Lothlorien вне форума
Новичок
 
Регистрация: 06.04.2011
Адрес: Солнечная система
Сообщения: 69
Версия Delphi: 7.0
Репутация: 12
По умолчанию Рисуем поверх полноэкранных окон

Всем доброго времени суток!

Поставил перед собой простую на первый взгляд задачу: написать программку, которая в углу экрана показывает текущий уровень заряда аккумулятора ноутбука. В OnActivate и OnDeActivate формы прописал
Код:
SetWindowPos(Handle, HWND_TOPMOST, Left, Top, Width, Height, SWP_NOACTIVATE or SWP_NOMOVE or SWP_NOSIZE);
Таймер каждые 10 секунд выводит в Label уровень заряда в процентах. Все хорошо работает... но только до момента запуска полноэкранного приложения (например, Counter-Strike) - форма исчезает.

Тогда отказался от таймера и формы. Написал высокоприоритетный поток, который рисует на экране (GetDC(0)) процент зарядки. Тоже не помогло - полноэкранная игра перекрывает все и вся, хотя в режиме Рабочего стола все работает исправно.

Гугл говорит, что нужно копаться в DirectX, искать текущую поверхность и на ней рисовать, но по DirectX я пока что полнейший ноль Да и все равно игра, по идее, имеет свое окно, даже в DirectX...

Что тут можно придумать?
__________________
Ne timeas obscurum.
Ответить с цитированием