Globalny hak klawiatury SetWindowsHookEx nie łapie wszystkich naciśnięć klawiszy

Piszę kod, który jest częścią systemu automatyzacji. Chciałem dodać hak na klawiaturze, aby przedwcześnie zakończyć test, i zrobiłem to za pomocą SetWindowHookEx.

Mój kod wygląda prawie tak:http://support.microsoft.com/kb/318804

Oto moje połączenie SetWindowsHookEx:

hHook = SetWindowsHookEx(WH_KEYBOARD_LL, KeyboardHookProcedure, GetModuleHandle(Process.GetCurrentProcess().MainModule.ModuleName), 0);

Teraz, gdy uruchamiam moją automatyzację, naciśnięcia klawiszy z systemu automatyki (z SendKeys) uruchamiają metodę zaczepienia klawiatury, ale gdy uderzę w klawiaturę ręcznie, nie jest ona uruchamiana.

Mogę udostępnić więcej kodu, jeśli to pomoże, ale jest to część znacznie większego systemu. Jestem pewien, że albo:

Mój SetWindowsHookEx nie jest poprawny lubCoś w systemie automatyzacji omija mój hak na klawiaturze (ale tak naprawdę nie wiem, jak to powiedzieć).

Napisałem aplikację testową, która używa przykładowego kodu z microsoft.com, aby stwierdzić, że moje podejście ma zalety (tzn. Działa), ale mam problem z integracją z systemem automatyki.

Wszelkie przemyślenia na temat tego, jak ustalić, gdzie dzieje się coś złego, zostaną bardzo docenione.

Edytuj: Nie ma innych instancji SetWindowsHookEx w wiązce automatyki. Nie jestem zbyt jasny niuansów globalnych haków na klawiaturze w.r.t. wątki i pulpit. Jeśli dodam globalny haczyk na klawiaturę, czy to powinno mieć znaczenie, skąd zostało dodane?

questionAnswers(2)

yourAnswerToTheQuestion