2009-09-28 22 views
5

Chciałbym być w stanie określić programowo, dlaczego system Vista pochodzi z trybu gotowości (S3). Każdy język jest w porządku, chociaż najlepiej byłoby .NET. Zamierzam umieścić ten kod w aplikacji, nad którą pracuję.Jak określić, dlaczego maszyna została wyłączona?

Szukam powodów, takich jak "Media Center chciał nagrać program", "wejście użytkownika obudził komputer," "aktualizacja systemu Windows jest zaplanowana do uruchomienia," takie rzeczy. Szukałem w Google, Bing i MSDN, ale mogłem tylko znaleźć rzeczy istotne dla Windows Mobile.

Czy ktoś może wskazać mi funkcję lub obiekt, który może dostarczyć te informacje?

+0

tak, chcesz umieść to w programie, który piszesz, czy chcesz po prostu narzędzie, które da ci te informacje? – Argalatyr

+0

Wątpię, czy będziesz w stanie uzyskać informacje tak szczegółowe, jak chcesz. Być może jednak można uzyskać nazwę modułu, który spowodował zawieszenie z dziennika systemu. –

Odpowiedz

1

okno najwyższego poziomu dostaje wiadomość WM_POWERBROADCAST po przebudzeniu, ale można tylko powiedzieć, czy to automatyczne (Media Center, Windows Update etc) lub użytkownik (Naciśnięcie przycisku zasilania itp)

+0

to może być wystarczająco dobre. jeśli coś wyskoczy w logu systemu o tym, co prawdopodobnie robi, to myślę, że mogę zhackować coś razem. –