Schlafverknüpfung in win7 [duplizieren]

4

Mögliche Duplikate: Mit
welchem ​​Befehl wird Ihr Computer in den Energiesparmodus versetzt (nicht in den Ruhezustand versetzt)?

Wenn ich versuche, eine Schlafverknüpfung in Windows 7 x 64 mit diesem Code zu erstellen:

C:\Windows\System32\rundll32.exe Powrprof.dll,SetSuspendState Sleep
C:\Windows\System32\rundll32.exe Powrprof.dll,SetSuspendState
C:\Windows\System32\rundll32.exe Powrprof.dll,SetSuspendState 0.1.0

Dann wird Windows in den Ruhezustand versetzt, anstatt in den Ruhezustand zu wechseln.

Ich möchte den Ruhezustand nicht deaktivieren, da ich ihn trotzdem verwenden möchte.

Wie mache ich das, damit mein Computer in den Ruhezustand wechselt?

Fuj1tsu
quelle

Antworten:

17

Sie nicht diese Funktionen aufrufen rundll32. Sie wurden nicht entwickelt, und wenn Sie dies tun, übergeben Sie im Grunde Müll als Argumente .

Sie können PsShutdown verwenden , um den Computer anzuhalten ( psshutdown -d) oder ein kleines eigenes Programm zu schreiben ( jemand hat bereits 1 ausgeführt ).


1 Kompilierte Version.

Grawity
quelle
Wie können Sie feststellen, dass eine Funktion nicht für Rundll32 entwickelt wurde?
Aaron Thoma
1
@accolade: Sie haben die Dokumentation gelesen. Die kompatiblen Funktionen haben eine sehr spezifische Signatur (HWND hwnd, HINSTANCE hinst, LPSTR lpszCmdLine, int nCmdShow), und in der Regel wird in der Dokumentation rundll32 explizit erwähnt. Alle anderen Funktionen sind nicht kompatibel.
Grawity
@grawity: Danke! Wie haben Sie die Dokumentation gefunden Powrprof.dll,SetSuspendState? (Ich hatte keinen Erfolg mit zwei schnellen googeln.)
Aaron Thoma
1
@accolade: Suche nur nach dem Funktionsnamen und es wird normalerweise das erste oder zweite Ergebnis sein . (Der DLL-Name ist nicht Teil der normalen Verwendung. Aus diesem Grund haben Sie wahrscheinlich keine Ergebnisse gefunden.) Da er Teil von Windows ist, kann das Hinzufügen des msdnSchlüsselworts ebenfalls hilfreich sein.
Grawity