Zeit für Energiesparmodus, Bildschirmabschaltung etc. schnell anpassen
Hallo,
ich war auf der Suche nach einem Skript, welches mir erlaubt, den Energiesparmodus eines Windows Rechners auf die Schnelle anzupassen, ohne sich jedes Mal zu den Energieoptionen durchklicken zu müssen... Ich habe mir ein kleines Programm vorgestellt, das auf dem Desktop aller User liegt und per Doppelklick und zwei, drei weitere Klicks die Zeiten der Energieoptionen anpassen lässt, ohne sich jedes Mal durch die Systemsteuerung suchen und klicken zu müssen.
Hintergrund:
Wer den Energiesparmodus von Windows nutzt, hat in den Energieoptionen einen (seinen) bevorzugten Wert für das Abschalten des Bildschirmes oder das Versetzen des Rechners in den Energiesparmodus eingetragen bzw. per GPO in einer AD Umgebung festgelegt, z.B. 30 Minuten bis Bildschirmabschaltung und eine Stunde bis Energiesparmodus.
Nun kann es immer mal wieder vorkommen, dass man diese Standardwerte kurzfristig anpassen möchte, z.B. wenn man einen Workshop durchführt, bei dem eine Grafik über einen längeren Zeitraum auf die Leinwand geworfen wird und die Teilnehmer sich über den Standardwert für Bildschirmabschaltung und /oder Energiesparmodus hinaus zu dieser Grafik austauschen, ohne dass eine Interaktion (Maus/Tastatur) am Rechner stattfindet. Um zu verhindern, dass Bildschirm und/oder Rechner abgeschaltet werden, müsste man umständlich zu den Energieoptionen des Rechners wechseln und dort die gewünschten Werte eintragen... Bequemer wäre es, mit einem Klick ein kleines Programm zu starten, mit dem man die gewünschten Werte direkt einstellen kann. Da ich genau so etwas gesucht aber nicht gefunden habe, habe ich etwas recherchiert und rumprobiert. Ergebnis ist der folgende Autoit Quelltext, der, kompiliert, eine kleine GUI erzeugt, in der man Minuten oder Stunden für den Energiesparmodus mit wenigen Klicks ändern kann.
Im folgenden Quellcode sind lediglich die CMD Befehle für den Energiesparmodus eingearbeitet - die Einstellungen für das Abschalten des Monitor usw. können entsprechend angepasst/ergänzt werden. Alle verfügbaren Parameter des relevanten Befehls POWERCFG sind hier zu finden. Wer keine Erfahrung mit Autoit hat, dem sei dieses Tutorial ans Herz gelegt, um Autoit runterzuladen, zu installieren und den u.g. Quellcode anzupassen oder einfach nur zu einer lauffähigen exe zu kompilieren.
Fragen, Ergänzungen, Hinweise, Optimierungsvorschläge usw. sind erwünscht und herzlich willkommen!!
Code:
ich war auf der Suche nach einem Skript, welches mir erlaubt, den Energiesparmodus eines Windows Rechners auf die Schnelle anzupassen, ohne sich jedes Mal zu den Energieoptionen durchklicken zu müssen... Ich habe mir ein kleines Programm vorgestellt, das auf dem Desktop aller User liegt und per Doppelklick und zwei, drei weitere Klicks die Zeiten der Energieoptionen anpassen lässt, ohne sich jedes Mal durch die Systemsteuerung suchen und klicken zu müssen.
Hintergrund:
Wer den Energiesparmodus von Windows nutzt, hat in den Energieoptionen einen (seinen) bevorzugten Wert für das Abschalten des Bildschirmes oder das Versetzen des Rechners in den Energiesparmodus eingetragen bzw. per GPO in einer AD Umgebung festgelegt, z.B. 30 Minuten bis Bildschirmabschaltung und eine Stunde bis Energiesparmodus.
Nun kann es immer mal wieder vorkommen, dass man diese Standardwerte kurzfristig anpassen möchte, z.B. wenn man einen Workshop durchführt, bei dem eine Grafik über einen längeren Zeitraum auf die Leinwand geworfen wird und die Teilnehmer sich über den Standardwert für Bildschirmabschaltung und /oder Energiesparmodus hinaus zu dieser Grafik austauschen, ohne dass eine Interaktion (Maus/Tastatur) am Rechner stattfindet. Um zu verhindern, dass Bildschirm und/oder Rechner abgeschaltet werden, müsste man umständlich zu den Energieoptionen des Rechners wechseln und dort die gewünschten Werte eintragen... Bequemer wäre es, mit einem Klick ein kleines Programm zu starten, mit dem man die gewünschten Werte direkt einstellen kann. Da ich genau so etwas gesucht aber nicht gefunden habe, habe ich etwas recherchiert und rumprobiert. Ergebnis ist der folgende Autoit Quelltext, der, kompiliert, eine kleine GUI erzeugt, in der man Minuten oder Stunden für den Energiesparmodus mit wenigen Klicks ändern kann.
Im folgenden Quellcode sind lediglich die CMD Befehle für den Energiesparmodus eingearbeitet - die Einstellungen für das Abschalten des Monitor usw. können entsprechend angepasst/ergänzt werden. Alle verfügbaren Parameter des relevanten Befehls POWERCFG sind hier zu finden. Wer keine Erfahrung mit Autoit hat, dem sei dieses Tutorial ans Herz gelegt, um Autoit runterzuladen, zu installieren und den u.g. Quellcode anzupassen oder einfach nur zu einer lauffähigen exe zu kompilieren.
Fragen, Ergänzungen, Hinweise, Optimierungsvorschläge usw. sind erwünscht und herzlich willkommen!!
Code:
#include <file.au3>
#include <MsgBoxConstants.au3>
#include <ButtonConstants.au3>
#include <ComboConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
;Fenster
$FormPowercfg = GUICreate("Powercfg", 340, 150, -1, -1)
;Bereich Minuten
$ComboMinuten = GUICtrlCreateCombo("0", 137, 15, 40, 25, BitOR($CBS_DROPDOWN,$CBS_AUTOHSCROLL))
GUICtrlSetData($ComboMinuten, "1|2|3|5|10|15|20|25|30|45", "0")
$Label1 = GUICtrlCreateLabel("Energiesparmodus nach", 15, 20, 118, 17)
$Label2 = GUICtrlCreateLabel("Minuten", 183, 20, 44, 17)
$ButtonAnwendenMinuten = GUICtrlCreateButton("Anwenden", 240, 15, 75, 25)
;Bereich Stunden
$ComboStunden = GUICtrlCreateCombo("0", 137, 55, 40, 25, BitOR($CBS_DROPDOWN,$CBS_AUTOHSCROLL))
GUICtrlSetData($ComboStunden, "1|2|3|4|5", "0")
$Label3 = GUICtrlCreateLabel("Energiesparmodus nach", 15, 60, 118, 17)
$Label4 = GUICtrlCreateLabel("Stunden", 183, 60, 44, 17)
$ButtonAnwendenStunden = GUICtrlCreateButton("Anwenden", 240, 55, 75, 25)
;Infotext
$Label5 = GUICtrlCreateLabel("0 = Energiesparmodus deaktivieren", 15, 120, 170, 17)
;Button Abbrechen
$ButtonAbbrechen = GUICtrlCreateButton("Abbrechen", 240, 95, 75, 50)
GUISetState(@SW_SHOW)
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $ButtonAbbrechen
Exit
Case $ButtonAnwendenMinuten
_PowercfgChangeStandbyTimeoutMinuten()
Exit
Case $ButtonAnwendenStunden
_PowercfgChangeStandbyTimeoutStunden()
Exit
EndSwitch
WEnd
Func _PowercfgChangeStandbyTimeoutMinuten()
$Minuten = GUICtrlRead($ComboMinuten)
Run (@ComSpec & " /c powercfg -change -standby-timeout-ac " & $Minuten)
Run (@ComSpec & " /c powercfg -change -standby-timeout-dc " & $Minuten)
If $Minuten > 0 Then
MsgBox(0,"Powercfg", "Energiespareinstellungen angepasst:" & @CRLF & @CRLF & "Energiesparmodus nach " & $Minuten & " Minuten.", 10)
Else
MsgBox(0,"Powercfg", "Energiespareinstellungen angepasst:" & @CRLF & @CRLF & "Energiesparmodus deaktiviert.", 10)
EndIf
EndFunc
Func _PowercfgChangeStandbyTimeoutStunden()
$Stunden1 = GUICtrlRead($ComboStunden)
$Stunden2 = $Stunden1 * 60
Run (@ComSpec & " /c powercfg -change -standby-timeout-ac " & $Stunden2)
Run (@ComSpec & " /c powercfg -change -standby-timeout-dc " & $Stunden2)
If $Stunden1 > 0 Then
MsgBox(0,"Powercfg", "Energiespareinstellungen angepasst:" & @CRLF & @CRLF & "Energiesparmodus nach " & $Stunden1 & " Stunden.", 10)
Else
MsgBox(0,"Powercfg", "Energiespareinstellungen angepasst:" & @CRLF & @CRLF & "Energiesparmodus deaktiviert.", 10)
EndIf
EndFunc
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 346999
Url: https://administrator.de/contentid/346999
Ausgedruckt am: 21.11.2024 um 15:11 Uhr