Seite 1 von 2

Feststellen ob PC im Standby-Modus

Verfasst: 15.10.2008 11:55
von Ractur
Hallo,

gibt es eine Möglichkeit festzustellen ob sich der PC aktuell gerade im Standbymodus befindet oder vor X Sekunden im Standby Modus befand?

Danke!

Grüsse Matthias

Verfasst: 15.10.2008 13:17
von Kaeru Gaman
spezifizier mal genauer, was du mit Standby-Mode meinst.

der Monitor aus, die Pladde aus, oder der Rechner auf "sleep"...

bei letzterem ist der Rechner nämlich eigentlich aus, nur sein Speicherinhalt komplett auf Pladde gemapt.
in dem Zustand läuft dein Program garnicht.

Verfasst: 15.10.2008 13:50
von TomS
Kaeru Gaman hat geschrieben:bei letzterem ist der Rechner nämlich eigentlich aus, nur sein Speicherinhalt komplett auf Pladde gemapt.
in dem Zustand läuft dein Program garnicht.
StandBy <> Ruhezustand

Deine Aussage trifft auf den Ruhezustand zu.

Im Standbymodus wird alles abgestellt, was nicht gebraucht wird, aber der PC bleibt an, und der Raminhalt bleibt im Ram.
Der PC ist innerhalb weniger Sekunden wieder betriebsbereit, nachdem man den PowerON-Knopf gedrückt hat.

@Topic: Ich denke nicht, dass es möglich ist. Im StandBy-Modus werden alle Aktivitäten aller Programm unterbrochen. Und mitgeloggt wird es auch nicht, wann der PC aus dem StandBy-Modus wieder "erwacht".

Verfasst: 15.10.2008 13:57
von AND51
Falls es für soetwas keine Funktion geben sollte oder solche Ereignisse nirgendwo gespeichert sind (versuchs doch mal mit der Ereignisanzeige in der Systemsteuerung/Computerverwaltung), habe ich hier eine Alternatividee:

Während des StandBy-Modus kann ein Programm nicht weiterlaufen. Man könnte also in einer Schleife permanent mit Date() prüfen, ob sich der PC im StandBy-Modus befand.
Date() ist sekundengenau, prüft man also zwei Mal hintereinander mit Date() und die Differenz zwischen diesen beiden Werten ist größer als 1 Sekunde, lag ein StandBy-Modus vor. Diese Methode würde auch für den Ruhezustand funktionieren.

ElapsedMilliseconds() würde ich nicht nehmen, da dieser Wert vermutlich auch über einen StandBy oder Ruhezustand hinweg "lückenlose" Zeitwerte gibt. Ob diese Aussage stimmt, habe ich aber jetzt nicht getestet.

Verfasst: 15.10.2008 14:24
von Kaeru Gaman
@TomS
yo mir war jetzt nicht bewußt, dass er zwischen "Monitor und Platte aus" und "Sleep" noch ein "Standby" gibt...
gabs das bei w2000 auch schon?

@AND
gar nicht mal schlecht, die idee.
... ich schätze, dass Ems auch einen korrekten, ununterbrochenen Wert liefert.

Verfasst: 15.10.2008 14:34
von TomS
@Kaeru: keine Ahnung. Ich bin von Win98 direkt auf XP umgestiegen. Und dieses Monitor und Platte aus ist StandBy. Es gibt nur StandBy und Hibernate. Da hab wohl eher ich dich missverstanden, als andersrum, weil ich dachte du meinst StandBy is das Selbe wie Sleep, oder so :roll:

Verfasst: 15.10.2008 15:47
von Kaeru Gaman
> Und dieses Monitor und Platte aus ist StandBy.
nicht ganz...

ich hab in den energiesparoptionen drei Einstellungen.
Monitor aus, Platte aus und Standby.

übrigens kann ich Standby nicht mit der (usb) Maus unterbrechen, die anderen beiden schon.

hab jetzt einen test gemacht: Eml wird auch fortgezählt.

... ich hab jetzt allerdings nicht getestet, ob das prog wirklich unterbrochen wird, ist aber anzunehmen.

ich modifizier den code nochmal und teste das auch.
hab jetzt eh nochwas zu tun, da kann der rechner noch ne halbe stunde standby stehen... xD

Verfasst: 15.10.2008 15:54
von TomS
Das mit den Energieoptionen ist wieder was anderes.
Dein Monitor geht nach 15 Minuten aus und eine Platte nach 30 (je nachdem, was du eingestellt hast). Damit hab ich mich gar nicht befasst, da ich es gleich abgestellt habe (wie soll man denn bei dem Schmarrn ne DVD anschauen können -_-). Ich meinte eigentlich den Punkt im Herunterfahren-Menü. Und das im StandBy Monitor und Platte abgeschaltet werden, bei Platte abschalten nach X minuten, aber nicht in den StandBy-Zustand übergegangen wird, ist wieder was anderes... Kompliziert, kompliziert, das Energiesparen mit einem PC.

StandBy mit der Maus unterbrechen wär auch nicht sonderlich sinnvoll. Stell dir mal vor, dein Fernseher geht an, wenn du deine Fernbedienung von der Couch auf irgendein Regal legst xD

Verfasst: 15.10.2008 16:39
von rolaf
Ein schlaues DVD-Abspielprogramm deaktiviert deshalb (während ein Film läuft) die Energiesparoptionen. :allright:

Verfasst: 15.10.2008 16:40
von Ractur
Hallo,

danke an alle! Also ich meinte den Ruhezustand, da wo Fesplatte ausgeht, Monitor etc... und dann der PC quasi fast ausgeschaltet ist.
AND51 hat geschrieben: Während des StandBy-Modus kann ein Programm nicht weiterlaufen. Man könnte also in einer Schleife permanent mit Date() prüfen, ob sich der PC im StandBy-Modus befand.
Date() ist sekundengenau, prüft man also zwei Mal hintereinander mit Date() und die Differenz zwischen diesen beiden Werten ist größer als 1 Sekunde, lag ein StandBy-Modus vor. Diese Methode würde auch für den Ruhezustand funktionieren.

Diese Idee finde ich sehr gut ^^ Ich hab mal was gemacht, die "Schleife" wird alle Sekunde einmal durchlaufen [WaitWindowEvent(1000)]

Code: Alles auswählen


a = a+1

If a = 1
first = Date()
EndIf

If a = 2
second = Date()
a = 0
EndIf


;Debug a
;Debug first
;Debug second

If first < second
finish = second - first
Else
finish = first - second
EndIf

If finish > 2
Aktion PC war im Standby
EndIf
Wäre das so richtig oder habe ich gerade einen Denkfehler? Da die "Schleife" einmal durchlaufen wird pro Sekunde, wird ein Wert ermittelt werden bevor der PC in den Standby fältt. Kommt der PC aus dem Standby wird wieder ein Wert ermittelt welcher diesmal wesentlich höher sein wird. Hmm ja, ich denke das wird so funktionieren, ich werds mal probieren ^^ ;)

Danke, Matthias