Mam pytanie jak w Delphi napisać funkcję lub procedurkę która zwraca czas bezaktywności użytkownika ale która też będzie działać w Windows98 GetLastImputInfo nie działą w win98
Można zastosować TTimer który sprawdzał by ruchy (komunikaty) myszki i komunikaty z klawiatury jeżeli ich nie ma to zaczyna liczyć. Tak działają AutoAway'e w większości komunikatorów sieciowych.
Neoo napisał(a)
Można zastosować TTimer który sprawdzał by ruchy (komunikaty) myszki i komunikaty z klawiatury jeżeli ich nie ma to zaczyna liczyć. Tak działają AutoAway'e w większości komunikatorów sieciowych.
Tak właśnie myślałem ale jak sprawdzić mysz i klawiaturę ogólnie w całym systemie win98 bo w nt/xp nie ma problemu.
Mula napisał(a)
Tak właśnie myślałem ale jak sprawdzić mysz i klawiaturę ogólnie w całym systemie win98 bo w nt/xp nie ma problemu.
To załóż sobie najzwyklejszego hooka globalnego i sprawdzaj w Timerze czy pojawiły się nowe wpisy.
Lub zrób z komponentem ShellChangeNotifier także sprawdzając w Timerze czy coś nowego wstawił.
Dla hooka:
function KeyHook(Code: Integer; wParam : WPARAM; lParam : LPARAM): Longint; stdcall;
var
Buffer: TEventMsg;
begin
result := 0 ;
Buffer := PEventMsg(lParam)^;
if Buffer.message = wm_KeyDown then
Form1.Memo1.Text := Form1.Memo1.Text + chr(Buffer.paraml);
end;
procedure TForm1.FormCreate(Sender: TObject);
var
MainHook : HHOOK;
begin
MainHook := SetWindowsHookEx(wh_JournalRecord, KeyHook, HInstance, 0);
end;
Jeśli od kilku sekund w obydwu przypadkach nie pojawiły się nowe wpisy - masz
nieaktywność ! :)
Opi napisał(a)
To tylko na klawiature dziala :) A o myszke tez chodzi :P
Zarejestruj się i dołącz do największej społeczności programistów w Polsce.
Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.