Seite 2 von 3

Verfasst: 28.10.2008 01:11
von AND51
Wenn das hier eine Lösung nur für deinen PC werden soll, und du WIndows XP benutzt, dann kannst du auch shutdown.exe benutzen, denn da geht der Timer im Gegensatz zu Vista wenigstens noch länger als 10 Minuten. /:->
Einfach ausrechnen, in wie vielen Sekunden der PC heruntergefahren werden soll und

Code: Alles auswählen

RunProgram("shutdown", "-s -f -t N", "")
ausführen lassen, wobei du für "n" natürlich deine Sekunden einsetzen musst.

Verfasst: 28.10.2008 14:52
von Falko
Leider ist es nicht für meinen PC, sondern einen Windows 2000 - PC in der Frima. Shutdown.exe existiert unter Windows 2000 nicht. Darum muss ich es eben selber schreiben.

RunProgramm kann ich nur ausführen, wenn der Benutzer angemeldet ist.

Das Problem ist nur, dass das Programm beim Willkommensbildschirm
(mit dem Taskplaner und Einstellung "Beim Systemstart") passieren soll.
Wegen der kurzen Zeit, ich will erreichen, das der PC am Wochenende,
wenn er mit Hilfe der BIOS-Einstellung morgens um 5:45 startet, dieser
dann genau um Sechs Uhr sich dann wieder ausschalten soll, da an diesen
Tagen keiner arbeitet. Der PC startet also jeden Tag und wird in der
Woche um 21.55Uhr heruntergefahren. Aber für das Wochenende
suche ich eine Lösung.

Wegen der Frage, wie will ich dieses Programm starten:
Unter XP und Vista nennt sich das Aufgabenplaner. Unter Win2000 ist
es unter Start/Einstellungen/Systemsteuerung --> Geplante Tasks, womit
man automatisch jedes Programm ausführen kann.

Die Möglichkeiten sind :
  • Jeden Tag
  • Ausgewählte Tage
  • Bei Anmeldung
  • Beim Systemstart.
Ein Benutzer und Passwort wird auch vorgegeben. Soweit funktioniert das
Programm intern in der Ausführung, was man an der erzeugten Log-Datei
sieht. Wenn die Zeit erreicht ist, wird sogar korrekt Uhrzeit mit
Bindestrichen in der Logdatei eingetragen wo diese überprüfte Zeit zutrifft. Nur wird halt nicht das Shutdown ausgeführt.

Da ist eben mein Problem und ich würde mich freuen, wenn ihr dazu
vielleicht eine Lösung habt, oder den Grund wisst, warum das Shutdown
nicht ausgeführt wird. Nochmal vielen Dank für eure Anteilnahme.

Grüße, Falko

Verfasst: 28.10.2008 15:19
von bobobo
shutdown unter w2k sollte mit psshutdown aus den pstools von
sysinternals.com (mittlerweile von ms gekauft) gehen .

autostartmöglichkeiten gibt es viele .

versuch mal aus dem betreffenden rechner in der eingabeaufforderung
gpedit.msc
einzugeben. falls das gelingt hast du per policy möglichkeiten ein
windowsstartscript einzutragen . das kann auch eine exe sein und
die machst du dir eben .. wochentag und zeit rausfieseln und
wochenenden (und feiertagen :twisted: ) den rechner eben
runterfahren mit obigen codes oder mit psshutdown


ich tät's selber ja lieber als service lösen mögen wollen .
is ja letztlich vom programm ähnlich nur die startprozedur hängt
woanders rum.

Verfasst: 28.10.2008 15:26
von Kiffi
bobobo hat geschrieben:woanders rum.
Bild

Verfasst: 28.10.2008 16:45
von Little John
Falko,

ich würde folgendermaßen an die Sache herangehen:

Ein Script oder ein EXE-Programm schreiben, das bei jedem Start von Windows ausgeführt wird. Dieses Programm prüft, ob Wochenende oder Feiertag ist. Wenn ja, fährt das Programm den Computer z.B. mit Hilfe des Codes von Thomas herunter, ansonsten macht das Programm gar nichts und endet.

Im Windows Taskplaner einrichten, dass der Computer jeden Tag um 21:55 Uhr heruntergefahren wird. Unter der Woche passiert das dann auch. Am Wochenende und an Feiertagen kommt es nicht dazu weil das andere Programm den Computer schon längst vorher ausgeschaltet hat, aber das stört ja nicht weiter.

Gruß, Little John

Verfasst: 28.10.2008 17:06
von NicTheQuick
Dann braucht man den Taskplaner aber auch nicht mehr.

Ich hatte mir auch mal ein Programm mit Purebasic geschrieben, dass den
Rechner zu einer bestimmten Zeit heruntergefahren hatte. Das Programm
wurde per Autostart, also beim Hochfahren, gestartet und hatte eine kleine
Schleife mit einem 'Delay(1000)', die sekündlich überprüft hat, ob die
angegebene Zeit erreicht oder schon überschritten wurde und hat dann die
Procedure von Thomas aufgerufen.

Hier gibts das kleine Progrämmchen. Allerdings ist das eine leicht modifizierte Version.

Verfasst: 28.10.2008 17:09
von Falko
@bobobo,
das mit dem gpedit.msc und dort ein Startscript ausführen, z.B. folgende
StartShutdown.cmd hat geschrieben:START c:\ShutdownSixWeekend.exe
EXIT
Beides, Sript und ShutdownSixWeekend.exe habe ich testweise in Laufwerk
C: kopiert. Wenn ich absichtlich den EXE-Namen falsch eingebe, meckert Windows, das die Datei nicht gefunden werden kann. Bei richtiger Eingabe
aber, warte ich und warte ich usw. und es tut sich nichts.
Wenn ich dann also aus meiner Willkommenmaske mich als Benutzer (Admin) anmelde und dann unter Laufwerk C: schaue, wurde anscheinend nichts gestartet, da ja auch keine Log-Datei geschrieben wurde.

Ein Dienst wäre mir auch lieber, nur wollte ich nichts fremdes auf den Firmenrechner installieren und daher die Überlegung einer einfachen Shutdownprozedur.

@Little John,
so wie du es beschrieben hattest, habe ich es auch gemacht. Oben weiter in diesem Thread habe ich Teile von Thomas Script für meine Exe genutzt und für Wochentagsabfrage als auch Uhrzeitprüfung gesorgt.

Beim Systemstart ausführen unter Taskplaner, wird wohl das Programm zwar während der Willkommensseite ausgeführt, wobei man noch nicht als Benutzer angemeldet ist. Ok, das erledigt der Taskplaner bzw. der Aufgabenplaner, der ein Login mit Adminrechten ausführen lässt und dann
das Programm korrekt startet.

Wenn ich nun nach der verstrichenen Zeit anmelde, da kein Shutdown stattgefunden hat, öffne ich nun das Laufwerk C: und sehe dort die gewollte Timer.log. Darin lasse ich die Zeiten eintragen. Die Zeit, wo der Shutdown hätte stattfinden müssen, wird mit Bindestrichen gekennzeichnet. Dieser Writebefehl findet kurz vor dem Shutdown, an innerhalb der If-Schleife statt. Also wurde die richtige if-abfrage angesprungen. Wenn man nun wüsste warum das so ist. Anscheinend ist es so wohl nicht möglich.

Gruß Falko

Verfasst: 28.10.2008 17:13
von Little John
NicTheQuick hat geschrieben:Dann braucht man den Taskplaner aber auch nicht mehr.
Wenn man den Taskplaner benutzt, dann ist es nicht nötig dass während der Woche den ganzen Tag über das selbstgeschriebene Programm im Hintergrund läuft. Ich dachte mir, das sei ressourcenschonender, aber das ist nur geraten. :-)

Gruß, Little John

Verfasst: 28.10.2008 17:19
von ts-soft
Mein EnableShutdown erfordert wohl einen angemeldeten User, sind also
Änderungen nötig. Sollte in der MSDN zu finden sein, bzw. man kann auch
im Taskplaner das Programm mit höheren Rechten starten, könnte auch
helfen. (mit höchsten Priviligien ausführen checken, ist für einfache Aufgaben nicht verfügbar)

Gruß
Thomas

Verfasst: 28.10.2008 17:25
von Little John
bobobo hat geschrieben:autostartmöglichkeiten gibt es viele
Vielleicht ist es auch noch wichtig, auf welche Weise man sein eigenes Shutdown-Programm startet? Nur so'n Gedanke.

Gruß, Little John