Ruhezustand eines Computers über Batch-Datei in Windows 7


13

Ich möchte eine Batch-Datei erstellen, die nach einiger Zeit meinen Computer in den Ruhezustand versetzt.

Das Nächste, was ich gefunden habe, ist, es in den Standby-Modus zu versetzen, aber es scheint anders zu funktionieren als die Sleep-Taste auf meiner Tastatur (längerer Systemstart, weckt nicht bei Mausklick). Irgendwelche Ideen? Wäre es in Python oder C # einfacher?

Die weniger als ideale Technik, die oben erwähnt wurde, ruft dies in der Eingabeaufforderung cmd auf:

Rundll32.exe powrprof.dll,SetSuspendState

Fügen Sie einfach einen Countdown-Teil in die .bat-Datei ein und führen Sie diesen anschließend aus.
Apache

sieht aus wie Duplikat superuser.com/questions/83437/...
akira

Der Ruhezustand ist völlig unterschiedlich, aber das ist die richtige Lösung, denke ich.
Apache

Ich glaube, das Ganze ist dasselbe wie der Winterschlaf. Wenn Sie in den Energiesparmodus wechseln, klicken Sie mit der Maus und der Anmeldebildschirm wird in ein paar Sekunden angezeigt. Der Ruhezustand muss das BIOS und die Festplatten erneut überprüfen und den gespeicherten Status von der Festplatte auf den Arbeitsspeicher übertragen und anschließend Windows starten. Der einzige Nachteil im Ruhezustand besteht darin, dass Sie den Strom verlieren und der im RAM gespeicherte Zustand verloren geht (und ältere PCs lassen tatsächlich mehr Komponenten wie Netzteil und Lüfter eingeschaltet).
Saebin

Antworten:


25

Einfach befehlen

rundll32.exe powrprof.dll,SetSuspendState

Versetzt das System in den Ruhezustand , aber wenn Sie dies schreiben:

rundll32.exe powrprof.dll,SetSuspendState 0,1,0

Und deaktivieren Sie den Ruhezustand mit dem Befehl:

powercfg -hibernate off

Jetzt geht Ihr System in den Ruhezustand und wacht bei einer Mausbewegung auf, wenn Sie ein Gerät dafür ausgewählt haben (scrollen Sie nach unten, um zu erfahren, wie).

Batch einen Timer:

timeout /t 1200
rundll32.exe powrprof.dll,SetSuspendState 0,1,0

Wobei 1200 Sekunden sind, was bedeutet, dass nach 20 Minuten im Batch der Befehl "Ruhezustand" ausgeführt wird.

Optional können Sie verhindern, dass der Countdown abgebrochen wird (wenn Sie eine beliebige Taste im Stapelfenster drücken):

timeout /t 1200 /nobreak
rundll32.exe powrprof.dll,SetSuspendState 0,1,0

Kleines HOWTO zum Aufwachen mit der Maus:

Gehen Sie zu: Start -> Systemsteuerung -> Maus.

Alt-Text

Im Maus - Eigenschaften - Fenster klicken Sie auf die Hardware Registerkarte und wählen Sie mit der Maus aus der Liste der Geräte. Normalerweise wird hier nur eine Maus aufgeführt, dies hängt jedoch von der Hardware ab, die Sie an Ihren Computer angeschlossen haben. Wenn Sie Ihre Maus aus der Liste ausgewählt haben, klicken Sie auf die Schaltfläche Eigenschaften .

Alt-Text

Klicken Sie nun im Eigenschaftenfenster Ihrer Maus auf der Registerkarte Allgemein auf die Schaltfläche Einstellungen ändern .

Alt-Text

In dem sich öffnenden Fenster klicken Sie auf das öffnet Power Management und prüfen Sie die Option Titel kann Gerät , um den Computer . Klicken Sie auf die OK - Taste in diesem Fenster und klicken Sie auf OK - Taste auf die Mauseigenschaften Fenster , die noch offen ist. Von nun an können Sie Windows 7 aus dem Energiesparmodus aktivieren, indem Sie auf eine Maustaste klicken oder die Maus bewegen.

Alt-Text


3
wow man, du beantwortest wirklich gerne Fragen :)
Omu

2
shutdown /h

wird den Computer in den Ruhezustand versetzen (ich bin mir jedoch nicht sicher).


2

Arbeitslösung!
Ich musste das PsShutdownDienstprogramm verwenden, um einen ordnungsgemäßen Schlaf zu ermöglichen (das Hauptproblem SetSuspendStatebesteht darin, dass Weck-Timer das Gerät nicht aktivieren können). Meine Batch-Datei zum Schlafen ist 1 einfache Zeile:

PsShutdown -d -t 2

Bitte lesen Sie Wie empfehle ich Software für einige Tipps, wie Sie Software empfehlen sollten. Sie sollten mindestens einen Link, einige zusätzliche Informationen zur Software selbst und Informationen zur Behebung des Problems in der Frage bereitstellen.
DavidPostill

1
Dies funktionierte nicht in meinem PC ...
Mrbengi

1

.NET zur Rettung. Mit dieser Lösung wird der Computer in den Energiesparmodus versetzt, ohne dass die PC-Konfiguration geändert werden muss (Deaktivieren des Ruhezustands). Führen Sie diesen Befehl im Batch aus:

powershell.exe -command "Add-Type -AssemblyName System.Windows.Forms; [System.Windows.Forms.Application]::SetSuspendState([System.Windows.Forms.PowerState]::Suspend, $false, $false)"

Sie können entweder ::Suspendfür den Schlaf oder ::Hibernate(wie die anderen Antworten funktionieren) verwenden. Dokumentation für SetSuspendState.

Da der System.Windows.FormsNamespace nicht standardmäßig geladen wird (in Powershell ISE), müssen Sie zunächst die Assembly laden.

ursprüngliche Antwort


0

Sie können SetSystemPowerState versuchen, um zu vermeiden, dass Sie Hiberanate deaktivieren müssen.

rundll32.exe kernel32.dll, SetSystemPowerState

Beachten Sie, dass das Hinzufügen von 1,0 oder 1 0 oder sogar das Ausführen von Rundll32.exe powrprof.dll, SetSuspendState 0 0 1 oder Rundll32.exe powrprof.dll, SetSuspendState 0,0,1 bedeutet, dass die Argumente (0,0,1) NICHTS bedeuten.

Die Datei powrprof.dll, SetSuspendState parst rundll32-Argumente nicht und ignoriert sie daher. Aus diesem Grund müssen Sie den Ruhezustand deaktivieren.


1
Dies ist nützlich für Windows XP, nicht für Vista oder höher.
Rodney

1
Beachten Sie, dass rundll32 die von Ihnen angegebenen Argumente ignoriert (weshalb SetSuspendState immer in den Ruhezustand wechselt), da die DLL keine Argumente von rundll32 akzeptiert.
Rodney

-1: Das ist völlig falsch. Es funktioniert nicht unter dem gewünschten Betriebssystem des OP.
nc4pk

rundll32 übergibt KEINE Argumente, weshalb Sie Hibernate deaktivieren müssen, damit es funktioniert. Die Standardargumente weisen es an, immer in den Ruhezustand zu wechseln. Wenn der Ruhezustand deaktiviert ist, wird die DLL-API standardmäßig in den Ruhezustand versetzt.
Rodney


0

Erstellen Sie einfach eine Batch-Datei und fügen Sie die folgenden Zeilen ein:

7200 = 2 hours

@echo off
timeout /t 7200 /nobreak
powercfg -h off
rundll32.exe powrprof.dll,SetSuspendState 0,1,0
powercfg -h on
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.