Сам я до этого никогда не писал подобные вещи и мне стало интересно. По ссылке я мало чего понял. Излишние комментарии, нечитабельный код и отсутствие хоть каких-нибудь объяснений.
После недолгой и мучительной медитации я все-таки понял, что делает вброшенный код, нашел единственную полезную строчку и скопипастил её.
Данный метод WinApi, как можно догадаться, получает состояние интересующей нас клавиши. После быстрых тестов обнаружил, что метод возвращает три разных значения, но нам подойдет только одно из них: -32767. Значение символизирует нажатие кнопки, что нам и нужно.
Теперь единственное, что нам нужно это пропустить через метод интересующие нас клавиши. Все клавиши перечислены в перечислении (простите за тавтологию) Keys. Как Вы наверное знаете (хотя скорее нет), в классе Enum есть замечательный метод с названием GetValues, который коллосально уменьшит код и упростит нам задачу.
У каждой клавиши есть свой номер, в перечислении Keys определены названия и номера клавиш, например: Keys.A = 65. Эти номера нужны для получения состояний.
Я создал класс под названием KeyState и добавил в него такой метод: