Вы можете задать любой вопрос по программе Autohotkey в нашей группе Вконтакте. Если решение требует более высокой квалификации- можно обратиться непосредственно ко мне.
Группа Вконтакте | Электронная почта | Симаков Яков ВК |
Определяет состояние (нажата или отпущена) для клавиши клавиатуры или кнопки мыши/джойстика. Также определяет положение джойстика.
OutputVar | Имя переменной, куда будет помещено состояние клавиши: для нажатой в переменную будет записана буква D, для отпущенной - U (однако функция GetKeyState() возвращает 1 для нажатой и 0 для отпущенной). Переменная будет пустой, если состояние клавиши получить не удалось. Нижеследующие пункты относятся только к джойстикам. 1) Для оси джойстика, например, JoyX, в OutputVar будет записано число с плавающей точкой от 0 до 100, показывающее позицию джойстика в процентах от полного диапазона движения этой оси. Формат числа можно изменить через SetFormat. 2) Когда KeyName задан как JoyPOV, возвращённое значение будет между 0 и 35900. Следующие примерные значения POV используются многими джойстиками: -1: нет угла 0: передний POV 9000 (т.е. 90 градусов): правый POV 27000 (т.е. 270 градусов): левый POV 18000 (т.е. 180 градусов): задний POV |
KeyName | Может быть практически любым одиночным символом с клавиатуры или одним из имён из списка клавиш и кнопок клавиатуры и мыши/джойстика. Примеры: B, 5, LWin, RControl, Alt, Enter, Escape, LButton, MButton, Joy1. Кроме того, может быть указан код виртуальной клавиши, например, vkFF. Это может быть полезно в тех редких случаях, когда клавиша не имеет имени. Как определить код виртуальной клавиши, показано в конце страницы со списком имён клавиш и кнопок. |
Mode | Режим. Этот параметр игнорируется при определении положения джойстика. Если этот параметр опущен, будет определяться логическое состояние клавиши. Это состояние, в котором клавиша находится по мнению операционной системы и активного окна, но оно не обязательно совпадает с физическим состоянием. Возможные значения: P: Определяется физическое состояние (т.е. держит ли пользователь клавишу нажатой на самом деле). Физическое состояние клавиши или кнопки мыши обычно совпадает с логическим, за исключением случаев, когда установлены хуки клавиатуры или мыши. В этом случае возвращённое состояние будет отражать её реальное физическое положение (если она была нажата, когда скрипт уже работал). Вы можете определить, использует ли скрипт хуки, при помощи команды KeyHistory или через меню скрипта. Вы можете гарантировать установку хуков, добавив в скрипт директиву #InstallKeybdHook и/или #InstallMouseHook. T: Определяется включенность/выключенность клавиши (для CapsLock, NumLock, ScrollLock и Insert). Возвращённое значение D означает, что клавиша включена, U - выключена (однако функция GetKeyState() возвращает 1 и 0 соответственно). |
Ожидание нужного состояния клавиши или кнопки мыши/джойстика обычно проще реализовать через команду KeyWait, нежели чем использовать GetKeyState в цикле.
Системы с необычными драйверами клавиатуры могут медленно обновлять состояние клавиш, особенно включенность/выключенность таких клавиш, как CapsLock. Если скрипт проверяет состояние такой клавиши сразу после его изменения, можно предварительно использовать команду Sleep, чтобы дать системе время обновить состояние клавиши.
Примеры использования GetKeyState с джойстиком смотрите на странице, где описаны переназначения кнопок джойстика, а также в скрипте Joystick-To-Mouse.