Witam.
Przeszukałem net oraz to forum w nadzieji że znajde jakieś konkretne wskazówki na temat problemu z tematu niestety się zawiodłem :(
Początkowo myśłem że będzie się dało wykryć tryb pełno ekranowy za pomocą jakiejś systemowej prostej procedury ale niestety chyba czegoś takiego NIE MA.
Wpadłem jednak na pomysł, który wydaje się być sensowny a mianowicie na wykrywaniu aktywności DirectX i OpenGL ale ponieważ się na nich nieznam to prosze Was o pomoc.
Innym rowiązaniem mogło by być po prostu wykrywanie trybu overlay ale niemam pojęcia jak to zrobić,
w bazie Microsoftu znalazłem coś takiego: capGetStatus (i kilka podobnych) ale nie wiem jak tego użyć :(
Prosił bym o jak najprostrzy sposób (najlepiej bez instalowania żadnych dodatkowych komponentów).
Mam jeszcze jedno pytanie, chociaż rozwiązałem problem to nawet niewiem w jaki sposób to działa:
var pvParam:pbool;
begin
SystemParametersInfo(SPI_GETSCREENSAVEACTIVE,0,@pvParam,0);
if (pvParam <> pbool(True)) then CheckBox1.Checked:=True;
Działa jak należy ale jak zamiast pbool dam np. pointer to wyskakuje Access Violation,
jeżeli usune @ z pvParam to również wyskakuje ten sam błąd bez znaczenia czy jest to pointer czy pbool, wartość która zostaje zwrócona w przypadku przykładu powyżej jest odwrotna do tej która powinna być, z tąd pvParam <> pbool(True).
Gdy usune @ to wartość jest zwracana popranie (nie na odwrót) ale wyskakuje Access Violation.
O co w tym chodzi ? Czy ktoś jest w stanie mi to wytłumaczyć w przystępny sposób ?