Hallo Leute,
ich weiß nicht ob ihr das kennt. LAN Party o.ä. da habt ihr sicher auch schon einmal den Satz gehört: "Ihr sitzt doch nur das ganze Wochenende vorm Rechner".
In Wahrheit sieht das ganze ja 'etwas' anders aus. Aber da mich generell mal interessieren würde, wie lange man der Rechner an ist und wie lange man ihn auch benutzt wollte ich ein Programm dafür schreiben.
Eine kleine Grundlage dafür habe ich schon geschaffen.
Mit folgender Procedure lese ich die Zeit aus, die der PC schon eingeschaltet ist.
Delphi-Quellcode:
procedure GetWindowsUpTime(var ADay, AHours, AMinutes, ASeconds: Integer);
const
OneDay : Integer = 1000 * 60 * 60 * 24;
OneHour : Integer = 1000 * 60 * 60;
OneMinutes : Integer = 1000 * 60;
OneSecond : Integer = 1000;
var
Start : Integer;
d, h, s: Integer;
begin
Start:=GetTickCount;
ADay:=Start div OneDay; //Tage
d:=Start mod OneDay;
AHours:=d div OneHour; //Stunden
h:=d mod OneHour;
AMinutes:=h div OneMinutes; //Minuten
s:=h mod OneMinutes;
ASeconds:=s div OneSecond; //Sekunden
end;
Und mit
Delphi-Quellcode:
procedure TfrmMain.Timer1Timer(Sender: TObject);
var
Tage, Stunden, Minuten, Sekunden: Integer;
begin
GetWindowsUpTime(Tage, Stunden, Minuten, Sekunden); //Laden der Zeit
lblUpTime.Caption:=Format(' %d Tagen, %d Stunden, %d Minuten und %d Sekunden', [Tage,Stunden,Minuten,Sekunden]) //Ausgabe der Zeit
end;
Wird die Zeit auf einem Label ausgegeben.
Nun habe ich aber ein Problem. Und zwar will ich wissen, wie lange ich den PC auch benutze.
Ich habe mir das so vorgestellt, das ich einfach gucke ob die Maus benutzt wird oder nicht. Und jeweils ein Abstand vom benutzen bis nicht benutzen von 1 Min oder so (frei wählbar!!!) bewahrt wird, bist angefangen wird zu zählen. Dann habe ich ja die Zeit in der ich aktiv bin.
Die Zeit der inaktivität kann man dann ja einfach ausrechnen.
Zitat:
Gesamtzeit - Aktive Zeit = Inaktive Zeit
Oder gibt es da ein Problem?!
Des weiteren will ich einmal eine Art Stoppuhr einbauen, sprich wenn man auf Start und Stopp klickt wird gezählt und dann soll noch eine Funktionen hinzukommen, wenn ein bestimmtes Programm läuft, wie lange das läuft. Das soll dann auch beim nächsten Start weiterzählen und nicht wieder bei 0 anfangen.
Im Anhang hab ich mal ein Screenshot der Alphaversion, das soll helfen, das ihr mein Anliegen versteht!
Über die Optik etc können wir später nochmal sprechen, es geht mir erstmal um die Funktionen!