Script zum automatischen Herunterfahren
lima-city → Forum → Programmiersprachen → Programmieren mit .NET & Mono
abbrechen
automatischen herunterfahren
basteln
code
eigene kleine anwendung
eingabe
extra tool
folgende windows
herunterfahren
host
minute
parameter
sekunde
set
stunde
stunden
url
vorgang
windows
zeitpunkt
-
Hallo (hoffe ich bin im richtigen Unterforum),
ich habe im Netz ein Script gefunden um meinen PC nach X Stunden automatisch herunter zu fahren. Funktioniert soweit auch alles nur kommt das Script nicht mit halben Zahlen klar. Sprich wenn ich 1,5 oder 1.5 eingebe, funktioniert es nicht wie gewünscht in 1,5 Stunden sondern der PC wird sofort heruntergefahren.
Ich habe schon überlegt mit Minuten statt Stunden zu arbeiten, allerdings keine elegante Lösung für mich. Deshlab die Frage an die Community ob das Problem
a) mit zwei Eingaben zu lösen ist. Sprich Eingabe der Stunden, ENTER, Eingaben der Minuten, ENTER, Script wird ausgeführt
b) mit Eingabe einer festen Uhrzeit (z.B. 16:35 Uhr) zu lösen ist.
Hier der Code für die "auto_shutdown.bat"
@echo off
set /p eingabe="Stunden bis zum automatischen Herunterfahren: "
set /a sekunden=%eingabe%*3600
shutdown -s -t %sekunden%
exit -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
@echo off set /p eingabe="Stunden bis zum automatischen Herunterfahren: " set /a sekunden=eingabe*3600 shutdown -s -t %sekunden% exit
So sieht das besser aus.
Scheinbar können aber keine Kommazahlen eingegeben werden.
Beziehungsweise:
shutdown bietet mit einem der Parameter eine graphische Oberfläche. Die kannst du dir mal anschauen, ob diese deinen Anforderungen entspricht!
Beitrag zuletzt geändert: 4.8.2017 17:22:46 von oportal -
Du kannst dir das mit dem herunterfahren des PCs auch selber basteln.
Das geht mittels Windows-API.
Wenn du das hast, kannst du dir deine eigene kleine Anwendung dazu basteln.
Du brauchst folgende Windows-APIs:
LookupPrivilegeValue
OpenProcessToken
AdjustTokenPrivileges
CloseHandle
-
Du kannst auch einfach selber das CMD öffnen und dort:
eingeben. 3600 Sekunden entspricht hier die 1 Stunde. Demnach müsste man bei einer Zeit von 1,5h dann einfach 5400 Sekunden eingeben. Muss man auch nicht selber ausrechnen man kann in google beispielsweise einfachshutdown -s -f -t 3600
eingeben und google berechnet die benötigten Sekunden. Das heißt ein extra Tool wird gar nicht benötigt. Des Weiteren gibt Windows dann auch an wann es heruntergefahren wird.1h in sekunden
Solltest du den Vorgang doch abbrechen wollen oder vllt. den Zeitpunkt ändern wollen gibt einfach:
im CMD ein.shutdown -a
Beitrag zuletzt geändert: 20.8.2017 22:20:00 von funplace -
funplace schrieb:
Du kannst auch einfach selber das CMD öffnen und dort:
eingeben. 3600 Sekunden entspricht hier die 1 Stunde. Demnach müsste man bei einer Zeit von 1,5h dann einfach 5400 Sekunden eingeben. Muss man auch nicht selber ausrechnen man kann in google beispielsweise einfachshutdown -s -f -t 3600
eingeben und google berechnet die benötigten Sekunden. Das heißt ein extra Tool wird gar nicht benötigt. Des Weiteren gibt Windows dann auch an wann es heruntergefahren wird.1h in sekunden
Solltest du den Vorgang doch abbrechen wollen oder vllt. den Zeitpunkt ändern wollen gibt einfach:
im CMD ein.shutdown -a
Es geht ja darum das mehr oder weniger automatisch und einfacher geht. Sein Script rechnet hier gleich von Stunden auf Sekunden um. Ohne Google.
Du kannst dir das mit dem herunterfahren des PCs auch selber basteln.
Das geht mittels Windows-API.
Wenn du das hast, kannst du dir deine eigene kleine Anwendung dazu basteln.
Du brauchst folgende Windows-APIs:
LookupPrivilegeValue
OpenProcessToken
AdjustTokenPrivileges
CloseHandle
Absolut unnötig und zu kompliziert für das eigentliche Vorhaben. Es geht darum einen Rechner auszuschalten. Nicht mehr und nicht weniger
Beitrag zuletzt geändert: 21.8.2017 0:52:59 von horstexplorer -
oportal schrieb:
Scheinbar können aber keine Kommazahlen eingegeben werden.
Jo, da hatte "set" schon ewig Probleme weil es nur mit Integer-Werten arbeiten kann.
Da gibt es dann wilde Basteleien über VisualBasic-Scripts, etc.
Leider ist jetzt etwas unklar was genau du suchst:
- Eine .NET-Lösung: Wäre vom Forum her passend
- Eine Batch-Lösung: Wäre vom Eingangspost passend
- Egal was, Hauptsache es tut
Für letzeres habe ich fix mal ein Powershell-Script gebaut. Das tut zumindest mit "1.5", etc.
Bei Bedarf auch die Stunden als Parameter der per Prompt abgefragt wird wenn nicht explizit angegegen.
try { [Single]$shutdownTimer = Read-Host "Shutdown-Timer in Stunden" } catch { Write-Host "Kein gültiger Wert" exit } $shutdownTimer *= 3600 &shutdown /s /f /t $shutdownTimer
Beitrag zuletzt geändert: 23.8.2017 1:44:04 von muellerlukas -
oportal schrieb:
@echo off set /p eingabe="Stunden bis zum automatischen Herunterfahren: " set /a sekunden=eingabe*3600 shutdown -s -t %sekunden% exit
Würde da noch -f hinzufügen. Sonst kann es durch bestimmte Programme zu einem Abbruch kommen -
-f ist bei Win10 absolut erforderlich
shutdown -s -f -t 36000
kann auch im explorer und im besten Fall in der taskbar Adresszeile eingegeben werden
(spart Win + r cmd ) -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage