Процедуры и функции работы с клавиатурой
В этом разделе описаны процедуры и функции работы с клавиатурой. Все что для этого вам необходимо знать - это то что у каждой клавиши на клавиатуре есть свой числовой код. К примеру для пробела это 32. Все эти коды можно посмотреть в приложении 1.
Содержание
KEYPRESS
СинтаксисKEYPRESS (keycode) - нажимает и отпускает виртуальную клавишу клавиатуры
keycode - числовое значение клавиши, константа или переменная
KEYDOWN
СинтаксисKEYDOWN (keycode) - нажимает виртуальную клавишу клавиатуры
keycode - числовое значение клавиши, константа или переменная
KEYUP
СинтаксисKEYUP (keycode) - отпускает виртуальную клавишу клавиатуры
keycode - числовое значение клавиши, константа или переменная
KEYSTRING
СинтаксисKEYSTRING ("keystring", [delay]) - нажимает виртуальные клавиши соответственно символам строки
keystring - строка, представляющая собой серию символов
delay - числовое значение задержки в миллисекундах между нажатиями клавиш; если параметр не указан, задержка не производится
KEYSTRING("Hello world") - будет напечатана строка "hello world" без задержки
Инструкция не печатает строку, а нажимает клавиши соответственно символам строки
Инструкция не может использоваться для нажатия несимвольных виртуальных клавиш
На результат так же влияет текущая раскладка клавиатуры
ISKEYDOWN
СинтаксисISKEYDOWN (keycode) - числовая функция; возвращает 1 если зажата клавиша и 0 если нет
keycode - код клавиши
// проверка нажатия пробела
if ( iskeydown(#space)=1 )
logwrite("space!")
END_IF
// проверка нажатия пробела и клавиши A
if ( (iskeydown(#space)=1) & (iskeydown(#a)=1) )
logwrite("space and a!")
END_IF
Это замена устаревшей и неудобной IF_KEYDOWN, которая будет удалена в ближайших версиях
Этой же функцией можно проверить состояние кнопок мыши (см. приложение)
GETKBLAYOUT
СинтаксисGETKBLAYOUT (hwnd) - числовая функция; возвращает идентификатор языка ввода
hwnd - hwnd окна
$hwnd = wndfind("Блокнот")
print( getkblayout($hwnd) )
SETKBLAYOUT
СинтаксисSETKBLAYOUT (hwnd, lang) - устанавливает язык ввода
hwnd - hwnd окна
lang - hwnd окна
$hwnd = wndfind("Блокнот")
// английский
setkblayout($hwnd, 1033)
GETKEYSDOWN
СинтаксисGETKEYSDOWN ($arr) - помещает список зажатых клавиш в массив
$arr - массив
// пример 1, вывод в лог всех нажатых клавиш
getkeysdown($kvar)
for($i=0, $i < arrsize($kvar))
print($kvar[$i])
end_cyc
waitms(100)
logclear
// пример 2, анализ нажатых клавиш через switch
// данный пример использует тот факт что $kvar тоже самое что и $kvar[0]
getkeysdown($kvar)
SWITCH($kvar)
CASE(#q)
print("Q")
CASE(#w)
print("W")
CASE(#e)
print("E")
END_SWITCH
waitms(100)
При вызове входной массив каждый раз очищается
Нажатые клавиши помещаются в массив по порядку, согласно их кодам (см. Приложение 1)
Аналогично iskeydown(), поддерживаются как клавиши мыши, так и клавиатуры