Ruhezustandsmodus automatisch aktivieren?

  • Allgemein

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Ruhezustandsmodus automatisch aktivieren?

    Hallo,

    ich habe (mal wieder^^) ein Problem. Standartmäßig ist bei Windows XP Home der Ruhezustandsmodus deaktiviert (zu finden bei Systemsteuerugn, Energiesparoptionen, Ruhezustandsmodus).

    Mein Tool soll den Computer aber nun in den Ruhezustandsmodus herunterfahren. Aber das geht nur, wenn der aktiviert ist, weil er sonst in den Standby fährt.

    Gibt es ne Möglichkeit den automatisch zu aktivieren?

    Hab schon mit google ne halbe ewigkeit gesucht aber rein gar nichts gefunden :(

    Das einfachste wäre ja, wenn man es mit der registry machen könnte. Darum habe ich mal nen Reg Monitor neben laufen lassen und hab folgendes festgestellt:

    Quellcode

    1. HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Power


    da gibts jetzt nen Eintrag "Heuristics"
    Wenn der Ruhezustandsmodus deaktiviert ist, sieht das ganze folgendermaßen aus: XX XX XX XX XX XX 00 XX XX ...
    wenn er aktiviert ist, sieht das folgendermaßen aus: XX XX XX XX XX XX 01 XX XX ...

    Nur, wenn ich jetzt diesen eintrag in der registry ändere, hat das leider keinerlei auswirkung, er bleibt deaktiviert bzw. aktiviert :(

    Vielleicht hat ja jemand n Vorschalg, wenn nicht sogar ne komplett andere idee.

    mfg
    Yoda2003

    edit: bekommt man das auch evtl. irgendwie mit makros hin, aber so, dass es auf jedem xp funzt?
  • Die einzige Möglichkeit dir mir bekannt ist, ist via unattended Hibernation auf yes zu setzten. Die Registry-Option ist nur zum Abfragen, setzen wird hier ihmo ignoriert. Sonst per AutoIt.
  • Hm leider werde ich aus deinem Post nicht ganz schlau :(

    Was ich jetzt bei google gefunden hab ist, dass man ne datei namens "Winnt.sif" erstellen kann und darin dann [unattended] Hibernation = yes (um den ruhezustand zu aktivieren). Hört sich eigentlich fantastisch an. Aber in der Praxis kann ich damit nicht viel anfangen. So wie ich dass verstanden habe sind das die vorgefertigten Systemoptionen die bei der Installation von Windows im Vorherein festgelegt worden sind. d.h. Der Ruhezustand wäre erst nach der Windowsinstallation drin. Aber das will ich ja nicht^^
  • ok ich bin jetzt nich ganz sicher drum skalpiert mich nich wenns nich stimmt aber ne anregung is es...

    Kann es sein das der PC nen neustart braucht um die Werte zu übernehmen?

    mfg
    [SIZE="1"] Wenn wer nen IPV sucht, melden!!!
    (\_/)
    (o.0)
    (><)
    This is Bunny. Copy Bunny into your signature to help him on his way to world domination
    [/SIZE]
  • Die Winnt.sif ist nur für eine Installation des Betriebssystems sinnvoll, hatt ich vergessen anzugegeben. Ein Neustart bringt auch nichts, Registry-Werte sind danach wieder auf dem vorherigen Wert. Eventuell geht das über WMI, bzw. hier ist jedenfalls der API-Call (SetSupendState). Evtl. hilft dir das hier:
    hxxp://www.microsoft.com/germany/msdn/library/visualtools/vb6/WindowsindenRuhezustandversetzen.mspx?mfr=true

    Ist zwar in VB, dürfte aber nicht schwierig sein, da es auf die API zurückgreift.

    [EDIT]
    So, ich hab jetzt die Sache nochmal mit Regmon betrachtet, es wird nicht nur in HKLM\...\..\Power geschrieben. Es wird anscheinend intern eine Gruppenrichtlinie erstellt. Eine Möglichkeit sehe ich aber doch noch, die ist zwar nicht elegant aber was solls ;)
    "powercfg /HIBERNATION on" lautet das Zauberwort. Eine Lösung via Registry habe ich leider nicht gefunden, wäre aber auch daran interessiert wenn sich so etwas anfindet.
    [/EDIT]
  • ich weis jetzt ned ob das hilft, aber ich hab mir einfach ne neue Verknüpfung auf dem Desktop angelegt und zwar mit dem

    Ziel: "%windir%\system32\rundll32.exe powrprof.dll,SetSuspendState"
    ausführen in: "%windir%"

    Und wenn ich da jetzt draufklicke fährt der PC in den Ruhezustand.
    [SIZE=1]&#1692;&#1691;&#1691;&#1692;&#1691;&#1691;&#1691; [/SIZE][SIZE=1]Profil | Blacklist, Friends & IpV [/SIZE][Size=1]&#1692;&#1692;&#1691;&#1691;&#1692;&#1691;&#1691; [/SIze]
    [SIZE=1]&#1692;&#1691;&#1691;&#1692;&#1691;&#1691;&#1691; [/SIZE] [SIZE=1] Besucht uns doch im IRC! &#1692;&#1692;&#1691;&#1691;&#1692;&#1691;&#1691;
    [/SIZE]

    [SIZE="1"][Size=1][SIZE=1]&#1692;&#1691;&#1691;&#1692;&#1691;&#1691;&#1691; [/SIZE]Neulinge * Regeln * Suchfunktion [/SIZE][/SIZE][Size="1"]&#1691;&#1691;&#1692;&#1691;&#1691; [/Size]
  • eine weitere idee wär:

    wenn man den ruhezustand startet wird ja wahrscheinlich noch ein dos
    programm aufgerufen das den pc in den diesen Zustand versetzt

    Und jetzt das schöne:
    Diese Datei muss auch existieren auch wenn der Ruhezustand nicht aktiviert ist

    jetzt musst du dein tool so programmieren das diese datei mit den entsprechenden parametern gestartet wird.....

    mfg
    [SIZE="1"] Wenn wer nen IPV sucht, melden!!!
    (\_/)
    (o.0)
    (><)
    This is Bunny. Copy Bunny into your signature to help him on his way to world domination
    [/SIZE]
  • Also, ich hab jetzt eine Lösung gefunden.
    Mein Programm generiert eine temporäre *.bat Datei mit folgendem Inhalt:

    Quellcode

    1. @echo off
    2. powercfg /hibernate on

    Und dann ist der Ruhezustand aktiviert :)

    Ist zwar keine schöne Lösung aber es funzt :)

    Ich möchte jetzt aber noch eine Steigerung haben, also ich möchte 2 Befehle in einer bat datei haben, die nacheinander ausgeführt werden sollen. Aber ich bekomme mit meinem C++ Programm leider nur einzeilige Dateien hin. So sieht mein Code bislang aus:

    Quellcode

    1. //Temporäre Datei erstellen
    2. FILE *stream = fopen("temp.bat", "w+");
    3. fprintf(stream,"powercfg /hibernate on");
    4. fclose(stream);


    Zum Beispiel möchte ich noch, dass danach diese Datei gelöscht wird. Das würde ich ja mit dem Befehl "del temp.bat" machen. Aber wie wird dieser Befehl in diese bat datei reingeschrieben? \n wie in C++ funzt leider net :(

    edit: Muss mich wohl vertippt haben. \n geht natürlich!
    @mods: pls closen


    mfg
    Yoda2003