Dobra odpowiedź tutaj ... dostać zbiór wszystkich keystates naraz używając GetKeyboardState()
:
Powyższe jest sprawdzenie stanu żywo klawiatury.
Jeśli polegasz na zahaczaniu zdarzeń do wydarzeń KeyDown/KeyUp w celu śledzenia stanu klawiatury ... może to nie być tak dokładne.
To dlatego, że polegasz na pompowaniu komunikatów w celu przetworzenia i wysłania wiadomości KeyDown/KeyUp .... mogą one zostać dostarczone po ponownym zmianie stanu klawiatury.
Również dlatego, że gdy twój kawałek kodu, który jest zainteresowany stanem klawiatury jest uruchomiony (zwykle w wątku UI) ... KeyDown lub KeyUp nie mogą ci przerwać ... ponieważ są wysyłane w wątku UI też .... dlatego należy użyć opcji GetKeyBoardState()
lub Keyboard.IsKeyDown
.
(powyższa nabiera chcesz i dbać o stan żywo)
Dobra odpowiedź –