Процедуры и функции работы с клавиатурой

В этом разделе описаны процедуры и функции работы с клавиатурой. Все что для этого вам необходимо знать - это то что у каждой клавиши на клавиатуре есть свой числовой код. К примеру для пробела это 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(), поддерживаются как клавиши мыши, так и клавиатуры