Sprawdzenie czy aplikacja działa na pełnym ekranie

0

Witam

Szlag mnie trafia jak włączę jakąś grę, na którą nie działa Alt+Tab i pozostałe skróty, Menedżer Zadań też jest niewidoczny, a gra "wisi" i nie można jej w żaden sposób wyłączyć. Chcę sobie napisać program, który będzie działał w tle i poprzez skrót klawiaturowy "ubijał" aplikację, która zakrywa wszystko - czyli jest full-top-level albo fullscreen. Dlatego zwracam się do was z pytaniem:
Jak sprawdzić czy aplikacja działa na pełnym ekranie?
Oczywiście biorąc pod uwagę każdą aplikację - używającą DirectX, OpenGL.
Program chcę napisać pod XP, starsze systemy jak i Vista mnie nie interesują.

PS. Chcę to zrobić z poziomu API, bez żadnych śmieciarskich komponentów. Program będę pisał w Delphi i C++. Środowiska Borlanda służą mi tylko jako kompilator - nie używam ich VCL.

0
function WindowMaximized(WindowTitle: string): boolean;
var
  pWP: PWindowPlacement;
  pHandle: HWND;
begin
  Result := false;
  pHandle := FindWindowByTitle(WindowTitle);
  if pHandle <> 0 then begin
    GetMem(pWP, SizeOf(WindowPlacement));
    if GetWindowPlacement(pHandle, pWP) then
      Result := pWP.showCmd = SW_SHOWMAXIMIZED;
    FreeMem(pWP);
  end;
end;

lub

BOOL IsUserPlayingFullscreen() 
 
{ 
 
HWND hwnd = GetForegroundWindow(); 
 
RECT rcWindow; 
 
GetWindowRect(hwnd,&rcWindow); 
 
HMONITOR hm = MonitorFromRect(&rcWindow,MONITOR_DEFAULTTONULL); 
 
if(!hm) 
 
return FALSE; 
 
MONITORINFO mi = {sizeof (mi)}; 
 
GetMonitorInfo(hm,&mi); 
 
return EqualRect(rcWindow,mi.rcWorkArea); 
 
} 
 
}
0

Ok. Działa, dzięki :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1