[c/c++] ??

Tobias K.

Erfahrenes Mitglied
moin

ich hatte keine ahnung wie ich hierzu einen betreff wählen soll!

also ich möchte ein programm schreiben das beim windows start ausgeführt wird und dann datum und uhrzeit in eine datei schreibt. das ist ja auch einfach! nur das programm soll dann beim beenden von windows auch wieder datum und uhrzeit in eine datei schreiben! wie schaffe ich es das mein programm beim beenden von windows ausgeführt wird??


mfg
umbrasaxum
 
Entweder ersetzt Du das Fenster zum Beenden von Windows durch ein eigenes und daraus rufst Du dann die entsprechende Funktion auf - was relativ schwer werden dürfte, wenn nicht sogar unmöglich.
Oder Du machst das ganze per API und fängst einfach die Nachricht ab, die beim Beenden von Windows an alle Fensterhandles geschickt wird. Welche das genau ist, kann ich Dir jetzt allerdings nicht sagen.
Ausserdem muss das Programm dann trotzdem vorher schon im Hintergrund laufen und auf die entsprechende Message warten.
 
ok
danke erstmal für die antwort!

allerdings bräuchte ich da mal ein paar hinweise wie ich das hinkrieg!
ich benutze xp und msvc 6.0
 
Erstmal wär das schon ganz sinnvoll, das ganze Programm über API zu schreiben. Weil Du ja eigentlich sowieso keine Fenster brauchst, sollte das sogar relativ einfach sein.
Wichtig dabei ist eigentlich nur, dass Du das Programm mit der WinMain-Funktion startest und dann in einer Endlosschleife die Nachrichten des Betriebssystems verarbeitest. Wenn die Nachricht WM_QUERYENDSESSION kommt, dann schreibst Du die Uhrzeit und das Datum in die Datei.

Du kannst ja einfach mal einen Blick auf diese Seite werfen, da wird die Programmierung mit C und dem WinAPI erklärt.
 
Ich würde Dir raten, auch wenn's etwas hochgestochen klingt, einen Windows Service zu schreiben.
Der Service läuft ständig im Hintergrund und wird automatisch beim Start von Windows gestartet und wenn Windows beendet wird, wird auch der Service beendet. Damit kannst Du dann die Start- sowie Stopzeit protokollieren lassen.
Da der Service ja nicht viel macht, braucht er auch nicht sehr viel Resourcen - würde mal sagen, die sind vernachlässigbar klein.

Im Internet findest Du genügend Beispiele wie man einen Service schreibt.
 
du kannst aber auch wenn du zum runterfahren z.b. ne verknüpfung aufm desktop nimmst das so machen:

du verknüpfst die auf dein programm und in dem programm steht dann noch

system("C:\\WINDOWS\\System32\\shutdown.exe -s -f -t 0 ");

dazu musste aber stdio.h #includet ham, aber wenn du dateien schreibst haste das ja eh schon ;)

PS: das oben is für xp runterfahren und das hier win win95/98 und me:
system("C:\\WINDOWS\\RUNDLL.EXE Shell32,SHExitWindowsEX 1");
 
hach und da heisst es linux / unix währe kompliziert.

Programm schreiben und link zu den programm in die entsprechende runlevels /etc/init.d/rc.5 | 6 .. packen.

aber das war hier jetzt nicht gefragt oder? ;)
 
... würde aber trotzdem kein normaler Mensch so machen, weil es viel zu umständlich ist. Und wer das trotzdem so macht, gehört erschlagen. :)
 

Neue Beiträge

Zurück