Witajcie :)
Mam sobie taka funkcję do monitorowania dystansu myszki w systemie, wrzuconą w TIMER:
var
Q:TPoint;
begin
Q:=Mouse.CursorPos; // pierwsza linijka
Distance:= Distance + Round( sqrt(sqr(P.X-Q.X)+sqr(P.Y-Q.Y)));
Caption := 'Dystans myszki: ' + inttostr(Distance) + 'px';
Monitor.P:=Q;
Wszystko chodzi dobrze, jednak jeżeli użyję WIN + L lub zablokuję system opcją ALT + CTRL + DEL itp to program wyrzuca ogólny wyjątek code 5 error nie wskazując linijki w kodzie. Po analizie okazało się zę winą jest pierwsza linijka. Pobieranie pozycji kursora.
Jako że to musi działać (nie musi zliczać podczas blokady) jednak nie może wywalać błędów.
Wzięcie tego kodu z timera w try..except nie rozwiązuje problemu.
Czy jest jakiś inny sposób by zliczać ruch myszki w całym systemie? Być może system nie udostępnia takich danych kiedy użytkownik jest zablokowany/przelogowany, jest jakaś metoda by to wykryć/sprawdzic?
Pozdrawiam!