Witam
Używam takiej funkcji do odliczania czasu bezczynności komputera:
function LastInput: String;
var
LInput: TLastInputInfo;
T:array[1..3] of Byte;
S:array[1..3] of String;
I:Integer;
begin
LInput.cbSize := SizeOf(TLastInputInfo);
GetLastInputInfo(LInput);
I := (GetTickCount - LInput.dwTime) div 1000;
T[1]:=I div 3600; //Godziny
I:=I-(T[1]*3600);
T[2]:=I div 60; //Minuty
I:=I-(T[2]*60);
T[3]:=I;
S[1]:=inttostr(T[1]);S[2]:=inttostr(T[2]);S[3]:=inttostr(T[3]);
If T[1]<10 then S[1]:='0'+S[1];
If T[2]<10 then S[2]:='0'+S[2];
If T[3]<10 then S[3]:='0'+S[3];
Result:=S[1]+':'+S[2]+':'+S[3];
end;
procedure TForm1.Timer1Timer(Sender: TObject);
begin
Edit1.Text:=LastInput;
end;
Działa dobrze, jednak teraz zastanawiam się jak obudzić komputer z czasu bezczynności.
Oczywiście jak poruszę myszką czy klawiaturą to czas ten resetuje się do 0000, ale jak zrobić to bez mojej ingerencji w peryferia?
Ogólnie problem polega na tym, że posiadam kartę TV Leadtek, a tam jest taka debilna opcja w której po kilkunastu minutach oglądania tv i nie ruszania peryferii (leżąc na łóżku) wyłącza się monitor lub komputer. Od razu mówię że w Windowsie w opcjach zasilania mam wszystko na "Nigdy" i zawsze muszę kopać w biurko, aby się myszka poruszyła i zresetowała bezczynność. :)
Jak za pomocą powyższego kodu zrobić budzenie kompa co jakiś czas bez kopania w biurko? :)</delphi>