Aus dem Standby erwachen?
-
hello
ist es möchlich per eigener software bzw. mit einer windows API den PC aus dem standby zu holen? oder geht das nur über den umweg eines treibers bzw. mit dem betriebssystem alleine? soviel ich weiss werden alle oder fast alle prozesse getötet, wenn windows in den standby geht. es hält imho nur das wichtigste im RAM, kann das sein? insofern würde das ja mit einer eigenen software fehlschlagen.
jedoch... any idea?
-
Bin mir nicht ganz sicher, aber schau dir mal bei SetWaitableTimer den Parameter fResume an:
If this parameter is TRUE, restores a system in suspended power conservation mode when the timer state is set to signaled. Otherwise, the system is not restored. If the system does not support a restore, the call succeeds, but GetLastError returns ERROR_NOT_SUPPORTED.
-
flenders schrieb:
SetWaitableTimer
exakt. das klappt auch. hab ich oft gemacht.
-
danke das ging einfacher als ich dachte

-
mir sind eben zwei dinge aufgefallen.
1. der computer kommt zwar aus dem standby zurück aber der bildschirm bleibt schwarz bis man die maus bewegt oder eine taste drückt. das ganze hat dann die folge wenn man dies nicht tut, das der pc nach einer gewissen zeit (paar sekunden, nicht minuten!) wieder in den standby geht. das liegt nicht an der energieoption ansich da dort die werte um die 15 minuten liegen.
2. liDueTime erwartet einen LARGE_INTEGER
(liDueTime.QuadPart = - sekunden * 1000000). das hat zufolge das der wert extrem gross wird. was ist, wenn ich den pc in ein paar stunden aus dem standby holen will, oder sogar in ein, zwei tagen? dann wird der wert zu gross als das ihn liDueTime auffassen kann.wie löse ich diese zwei probleme? problem 1. hatte ich mit einem simulieren von ENTER versucht (keybd_event) leider ohne erfolg. auch das per software bewegen des cursor hat nichts gebracht.
-
2. (liDueTime.QuadPart = - sekunden * 1000000LL).
-
da krieg ich den fehler "in anweisung fehlt ; " was würde denn LL genau bewirken?
-
standbyman schrieb:
da krieg ich den fehler "in anweisung fehlt ; " was würde denn LL genau bewirken?
2. (liDueTime.QuadPart = - sekunden * __int64(1000000)).
macht aus 1000000 nen 64-bittigen int. LL steht für long long. kann sein, daß dein compiler das nicht vesteht.
-
hmm
-
hm?

-
Zu 1.: Probier es mal mit SetThreadExecutionState mit dem Flag ES_SYSTEM_REQUIRED. Theoretisch sollte das System dann nicht mehr erneut in einen Sleep-Mode gehen können.
Zu 2.: Der 64-Bit Wert sollte, wie Volkard schon sagte, auf jeden Fall groß genug sein. Allerdings müsste der Faktor 7 Nullen enthalten, um Sekunden zu erhalten. Alternativ kannst du auch einen positiven Wert angeben, der dann einen absoluten Zeitpunkt darstellt.
Und dann hänge ich gleich mal meine Fragen ran:

Wie kann ich verlässlich feststellen, ob die Wake-Funktionen unterstützt werden?
Auf meinem Hauptrechner funktioniert alles erwartungsgemäß, auf meinem "Videorekorder-PC" allerdings nicht, weder mit Standby noch mit Ruhezustand.
Ich habe mal mittels NtPowerInformation die Power Capabilities abgefragt und folgendes erhalten:Rechner auf dem es funktioniert: Unterstütze Power States: S1 S3 S4 Full Wake: Unterstützt Rechner auf dem es nicht funktioniert: Unterstützte Power States: S1 S4 Full Wake: UnterstütztEigentlich ging ich davon aus, dass FullWake die relevante Angabe ist, aber anscheinend nicht verlässlich.
Und was ist der Unterschied zwischen den Power States Sleep 1-3 (S1-S3)?
-
bei mir kann ich im bios beim power-management zwischen zwei möglicheiten des suspends umschalten. das eine heißt glaub ich STR (suspend to ram hab ich mir draus gedeutet, damit klappt aufwachen und wie das andere heißt, weiß ich nicht mehr, aber das ander klappt nicht).
-
guck mal in der platform-sdk unter "power management". mit den funktionen dort kannst du den computer sogar vom ausgeschalteten zustand aus wieder starten! das nennt sich dann on-now-technologie.
-
Konfusius schrieb:
guck mal in der platform-sdk unter "power management". mit den funktionen dort kannst du den computer sogar vom ausgeschalteten zustand aus wieder starten! das nennt sich dann on-now-technologie.
Falls das auf den Threadersteller bezogen war: Wurde schon gesagt

Falls es auf mich bezogen war: Ist mir bekannt, ich habe ja eine konkrete Frage zu dieser Funktion gestellt.
-
das klingt interessant. um welche funktion handelt es sich? auf die schnelle habe ich nur RequestWakeupLatency gefunden scheitn jedoch nicht diese zu sein.
-
hm
?
-
Das hatten wir doch jetzt schon, oder was meinst du?
-
simmulier doch einfach einen beliebigen tastendruck!
-
gfhfdgh schrieb:
simmulier doch einfach einen beliebigen tastendruck!
Sehr sinnvoller Beitrag
