2009-09-28 4 views
5

Ich möchte programmgesteuert feststellen können, warum ein Vista-System den Standby-Modus verlassen hat (S3). Jede Sprache ist in Ordnung, obwohl ein .NET wäre am besten. Ich möchte diesen Code in eine Anwendung einfügen, an der ich gerade arbeite.Wie kann ich feststellen, warum die Maschine aus dem Ruhezustand gekommen ist?

Ich bin auf der Suche nach Gründen wie "Media Center wollte ein Programm aufzeichnen", "Benutzereingabe weckte die Maschine", "Windows Update wird geplant, zu laufen", solche Dinge. Ich habe auf Google, Bing und MSDN gesucht, konnte aber nur relevante Informationen zu Windows Mobile finden.

Kann mir jemand auf eine Funktion oder ein Objekt hinweisen, die diese Informationen bereitstellen können?

+0

so, Sie wollen betten Sie dies in ein Programm ein, das Sie gerade schreiben, oder wollen Sie nur ein Dienstprogramm, das Ihnen diese Informationen liefert? – Argalatyr

+0

Ich bezweifle, dass Sie so spezifische Informationen erhalten können, wie Sie möchten. Möglicherweise können Sie den Namen des Moduls, das den Suspend verursacht hat, jedoch aus dem Systemprotokoll abrufen. –

Antwort

1

Ein Top-Level-Fenster erhält eine WM_POWERBROADCAST Nachricht beim Aufwachen, aber man kann nur sagen, ob es automatisches war (Medienzentrum, Fenster aktualisieren usw.) oder der Benutzer (Presskraft-Taste usw.)

+0

das könnte gut genug sein. wenn etwas im Systemprotokoll darüber herauskommt, was es wahrscheinlich tut, dann denke ich, dass ich etwas zusammenhacken kann. –

Verwandte Themen