hallo und willkommen in der
dp
dein problem ist deine sleep funktion, mit der sagst du ihm quasi, das er in dem quellcode erst na einer stunde weiter machen soll, deswegen beendet er das programm auch nicht, weil er quasi ne pause macht!!! auch dein 2 problem sollte daran ligen..
edit:
ach ja, mit dem runterfahren nach dem neustarten hat er wahrscheinlich probleme, weil er die "*.bat" datei nicht findet, denn bei dem neustart hat er einen anderen augenblicklichen pfad drinne, als wenn du dein programm direkt startest! abhilfe schafft dabei, eine pfadangabe mit dem winexec parameter zu übergeben..
und noch als anmerkung, die funktion winexec ist veraltet und nur noch für kompatiblität abwärtshalber vorhanden..
z.b. createprocess!!