Как создать свой сайт

Работа с клавиатурой в "Кибор"

Скачать Кибор

О программе Кибор

Описание языка Кибор
Переменные

Операции с переменными
Логика и переходы
Указатели
Функции

Список функций
Индификация окон и контролов

Управление окнами

Клавиатура

Мышь
Контролы
Работа с изображением
Сканирование экрана и поиск изображений
Поиск 3Д моделей в играх
Определение цвета пикселя
Система
Вывод сообщений
Вспомогательные

Интерфейс программы
Текстовый редактор

Контролы управления

Визуальные инструменты Кибор

Шпион получающий информацию о окнах, контролах, координатах мыши и цвете экрана

Сканер графического интерфейса

Демонстрационные примеры
Бот для игры в пасьянс Косынка
Бот для Warspear Online

Список демонстрационных примеров...

Нажатие кнопок клавиатуры.

Для разных целей можно применять разные функции нажатий клавиш клавиатуры:
key('a') - нажимает и отпускает клавишу a. Нажатие происходит в активном окне или контроле. Если к примеру фокус стоит на контроле Edit, поле для ввода текста, в нем пропечатается символ 'a'. Проверка раскладки языка не производится. Будет напечатан символ текущего языка в этом окне.
В виде параметра допускается использовать число int, соответствующее коду клавиши с таблицы. int допускается использовать только в функциях key, keydown, keyup принимающих один параметр.
key(65) - нажимает и отпускает клавишу a. Нажатие происходит в активном окне или контроле. Если к примеру фокус стоит на контроле Edit, поле для ввода текста, в нем пропечатается символ 'a'. Проверка раскладки языка не производится. Будет напечатан символ текущего языка в этом окне.
key("qwert") - нажимаются и отпускаются по очереди все клавиши, как бы печатая. Проверка раскладки языка не производится. Будут напечаты символы текущего языка в этом окне.
key(F1) - аналогично. Будет нажата клавиша F1 в активном окне, что вызовет открытие справки (при наличии)активной программы. Список всех клавиш ищите в интернете. Он аналогичен, только бе приставки VK_
Пример
activate(window (-1, "Edit", window ("Безымянный — Блокнот", "Notepad", -1)));// активировать поле Edit программы блокнот для нажатия клавиши в нем. (перед этим блокнот надо запустить)
key("qwert");//Жмем клавиши qwert

keydown('a') - тоже самое, но только клавиша будет только нажата.
keyup('a') - тоже самое, но только клавиша будет только отпущена.
 Применяется для нажатий сочетаний клавиш. Пример отправки документа на печать:
activate(window ("Безымянный — Блокнот", "Notepad", -1));//активировать окно программы блокнот
keydown(CONTROL);//нажать CTRL
keydown(\'p\');//нажать p
keyup(\'p\');//отпустить p
keyup(CONTROL);//отпустить CTRL

Можно и так:
keydown(CONTROL);//нажать CTRL
key(\'p\');//нажать отпустить p
keyup(CONTROL);//отпустить CTRL

Это работает если не важен язык раскладки клавиатуры в окне, или изначально известен. Так как при нажатие A при русской раскладке напечатается Ф, а при английской A.

Следующие одноименные функции имеют гораздо более широкие возможности. Их можно применять например в чатах для корректного набора текста не зависимо от расскладки клавиатуры.
 key('a', 1, 1, win wind) - принимает 4 параметра.
key("Ввести русский и English текст переключая раскладку клавиатуры", 1, 1, win wind)
1 - символ или строка.
2 - если окно не активно, этот параметр со значением 1 активирует нужное окно или контрол передавая ему фокус, если 0 - не активирует.
3 - при 1 проверить соответствие раскладки языка в данном окне с языком вводимого символа и при необходимости переключить язык на нужный. Так же нажимается при необходимости Контрол при вводе символов для которых надо его зажать. Так же вводится правильный регистр. Проверяется по отдельности перед вводом каждого символа. Строка может состоять из русских и английских букв вперемешку большого и малого регистра и символов для которых надо зажать Контрол. Если 0 проверка и переключение не производится.
 4 - указатель на окно или контрол. Если этот параметр 0 - в активном окне нажимается.
Аналогичо работают:
keydown('a', 1, 1, win wind) - нажать
keyup('a', 1, 1, win wind) - отпустить

Вышеописанные функции иммитируют физическое нажатие клавиатуры в окнах, поэтому для их корректной работы необходимо чтобы они были активны.

Следующая функция позволяет напрямую отправлять окну или контролу сообщение о нажатие в нем кнопки. Поэтому работает с неактивными и свернутыми окнами без активации:
Эти функции передают нажатие и отпускание кнопки
sendkey('a', win wind);
sendkey("asd", win wind);
sendkey(F1, win wind);
Внимание - при вводе текста возможно повторение вводимого символа дважды. Эти функции следует использовать в играх.

Эти функции передают только нажатие если добавить второй параметр и установить его в 0. Двойного нажатия не будет при параметре 0
sendkey('a', 0, win wind);
sendkey("asd", 0, win wind);
sendkey(F1, 0, win wind);

Если второй параметр установить в 1 то будет как и в первом примере передаваться нажатие и отпускание кнопки:
sendkey('a', 1, win wind);
sendkey("asd", 1, win wind);
sendkey(F1, 1, win wind);

Если последний параметр 0 - отправляется активному окну. Пример печанья в свернутом в трей окне блокнота:
sendkey("Текст печатается в свернутом окне", 0, window (-1, "Edit", window ("Безымянный — Блокнот", "Notepad", -1)));
Недостаток: при английской расскладке напечатано будет: ntrcn gtxfnftncz d cdthyenjv jryt
Эту функцию можно использовать к примеру для нажатий клавиш в неактивном окне игры.

Следующая функция не иммет отношения к клавиатуре, но может вводить непосредственно текст, поэтому опишу ее тут:
Пример ввода текста в блокнот в свернутое окно без его активации:
win wind=window (-1, "Edit", window ("Безымянный — Блокнот", "Notepad", -1));
sendtext("Текст вводится непосредственно без нажатий клавиатуры. Может в свернутое окно", wind);
Плюс в том что не зависит от расскладки. Текст будет на том языке на котором написан.
Недостаток или плюс (зависит от ситуации)- заменяется полностью весь текст на вводимый
Эта фунция может не только вводить текст в поля ввода, но и менять названия кнопок, имена окон и т.д.