hi,
dafür müsstest du
imho einen keyboard- und mousehook machen. das geht aber nur aus ner
dll raus. und manche antivirenprogramme finden sowas nicht gut und meckern dann^^
musst mal im forum nach mousehook oder heyhook suchen ich hab damit schon mal was gemacht ist aber länger her... auf jedenfall müsstest du halt irgendwelche tresholds definieren dass z.b. wenn kein mousemove-event vom mousehook mehr aufgerufen wurde seit 20 sekunde oder so macht er sich einen timestamp und wenn dann der status wieder nach pc wird verwendet gewechselt wird speichert er die zeit von diesem timestamp bis jetzt als inaktiv(addiert den zur inaktiven gesamtzeit) oder halt nicht.
Delphi-Quellcode:
//keine mousemove-events für xx sekunden
dChangeToInactive := Now();
//wieder ein mousemove-event da
iTotalInactiveTime := iTotalInactiveTime + SecondsBetween(Now, dChangeToInactive);
dChangeToInactive ist vom typ TDateTime
iTotalInactiveTime ist Int64 oder Integer
die
unit "DateUtils" muss in die uses-klausel eingefügt werden.
was auch noch ein prolem werden könnte ist wenn der pc abstürzt... am besten du speicherst alle 10 minuten oder so die gesamtzeiten