2009-07-24 9 views
7

Piszę aplikację, która ustanawia haki powłoki, aby uzyskać zdarzenia powłoki (używam C#, jeśli ma to znaczenie). Używam tego przykładu: http://msbob.spaces.live.com/blog/cns!DAFD19BC5D669D8F!132.entryCzy ktoś wie, co oznacza komunikat ShellHook HSHELL_RUDEAPPACTIVATED?

Hak działa poprawnie, ale nie otrzymuję wiadomości, na której jestem zainteresowany: HSHELL_WINDOWACTIVATED (wszystkie inne zdarzenia związane z oknem działają dobrze). Zamiast tego otrzymuję komunikat o kodzie 32772, który powinien być HSHELL_RUDEAPPACTIVATED (pomogło trochę googlowania).

Ale nie rozumiem, dlaczego w ogóle nie otrzymuję HSHELL_WINDOWACTIVATED i co oznacza ta wiadomość HSHELL_RUDEAPPACTIVATED. MSDN nie wspomina o tym. Czy ktoś może mi to wytłumaczyć?

Odpowiedz

4

HSHELL_RUDEAPPACTIVATED to 32772, czyli tylko HSHELL_WINDOWACTIVATED z ustawionym wysokim bitem. Z tego, co mogę zebrać na różnych stronach internetowych, wydaje się, że Windows wysyła tę wiadomość, gdy aktywowana jest aplikacja pełnoekranowa. Trudno powiedzieć na pewno.

Czy próbowałeś traktować tę wiadomość tak samo jak "HSHELL_WINDOWACTIVATED"?

+0

Tak, teraz traktuję to jako HSHELL_WINDOWACTIVATED i wszystko działa poprawnie. Ale chcę zrozumieć, dlaczego ta wiadomość rośnie. Pochodzi z dowolnego okna, nie tylko z pełnoekranowych aplikacji. – koldovsky