Код для клавиш vk

Есть некое приложение. В нем необходимо нажать правый энтер (который под блоком NUM клавиш. Нашел в таблице только VK_Return, а вот для другого энтера не нашел. Кто ни будь может подсказать его VK код. Эта программа различает оба Энтера.

Они для нее разные.

П.с. Кликнуть мышкой не выйдет.

З.Ы. Сильно не бейте за некрасивый код, мне всего лишь 15 лет
Регистрация: 13.07.2012
Сообщений: 6,471

У WM_KEYUP/WM_KEYDOWN сообщения, из которого приходит VK код, есть параметр LPARAM в котором содержатся разные флаги, в том число скан код клавиш. VK код один и тот же но скан код будет отличаться. Кроме того, там есть бит «extended key» на который тоже стои обратить внимание (даже думаю с него надо начать)

Пользователь
Регистрация: 27.02.2009
Сообщений: 53

А есть ли какая книжка умная по данной теме, а то из МСДН справки почти не понял как применяется лпарам

З.Ы. Сильно не бейте за некрасивый код, мне всего лишь 15 лет
Пользователь
Регистрация: 27.02.2009
Сообщений: 53

ГОРЯЧИЕ КЛАВИШИ / HotKeys / Visual Studio Code

http://ru.wikipedia.org/wiki/Scancode нашел скан коды для клавишь, но блин нислова, как ими пользоваться ><. Понятно что прописывать в Lparam а что прописывать не знаю. Пните кто ни будь, пожалуйста

З.Ы. Сильно не бейте за некрасивый код, мне всего лишь 15 лет
Регистрация: 13.07.2012
Сообщений: 6,471

Из LPARAM извлекаете сканкод и потом сравниваете. В MSDN написано в каких битах LPARAM указан сканкод

Регистрация: 15.02.2010
Сообщений: 15,414
Пользователь
Регистрация: 27.02.2009
Сообщений: 53

Осталось добавить нажатие Num-enter. С ним то как раз и проблемы. Точнее проблема в отсутсвии примера или норм описания. С английским проблемки пока. Ну вот что сейчас есть

// Имитация нажатия клавиш для входа в Управляющую систему sleep(2000); Label2.Caption:=’Запуск управляющей систмы’; h:=findwindow(nil,’Launch EMCO Control’); PostMessage(h, WM_KEYDOWN, VK_DOWN, 0); PostMessage(h, WM_KEYup, VK_DOWN, 0); Sleep(1000); Label2.Caption:=’Выбор управляющей систмы’; PostMessage(h, WM_KEYDOWN, VK_Return, 0); PostMessage(h, WM_KEYup, VK_Return, 0); sleep(2000); Label2.Caption:=’Загрузка управляющей систмы’ ; f:=findwindow(‘NC2000 (c) EMCO’,’WinNC SINUMERIK 840D TURN (c) Emco’); Sleep(2000); keybd_event(VK_F10, 0, 0, 0); Keybd_event(VK_F10, 0, KEYEVENTF_KEYUP, 0); Sleep(2000); keybd_event(VK_F3, 0, 0, 0); Keybd_event(VK_F3, 0, KEYEVENTF_KEYUP, 0); Sleep(1000); keybd_event(Vk_Return ,28, 0, 0); Keybd_event(Vk_Return, 156, KEYEVENTF_KEYUP, 0); Sleep(2000); keybd_event(VK_LSHIFT , 0, 0, 0); keybd_event(VK_f7 , 0, 0, 0); Keybd_event(VK_f7, 0, KEYEVENTF_KEYUP, 0); Keybd_event(VK_LSHIFT, 0, KEYEVENTF_KEYUP, 0); Sleep(2000); keybd_event(VK_F10 , 0, 0, 0); Keybd_event(VK_F10, 0, KEYEVENTF_KEYUP, 0); sleep(1000) ; keybd_event(VK_F1 , 0, 0, 0); Keybd_event(VK_F1, 0, KEYEVENTF_KEYUP, 0); Sleep(2000); keybd_event(VK_F10 , 0, 0, 0); Keybd_event(VK_F10, 0, KEYEVENTF_KEYUP, 0); sleep(1000); keybd_event(VK_LSHIFT , 0, 0, 0); sleep(1000); keybd_event(VK_F1 , 0, 0, 0); Keybd_event(VK_F1, 0, KEYEVENTF_KEYUP, 0); sleep(1000); Keybd_event(VK_LSHIFT, 0, KEYEVENTF_KEYUP, 0); Sleep(2000); Sleep(1000); keybd_event(VK_Return , 0, 0, 0); Keybd_event(VK_Return, 0, KEYEVENTF_KEYUP, 0); Sleep(2000);

Еще по теме:  Как заблокировать приложение Вконтакте у себя на телефоне

Наклепал программку для определения скан кода нужной мне клавиши. Программулина выдала что скан код равен E0_1C. Я так понимаю, что его нужно вставить вот в эту конструкцию

Как узнать виртуальные коды клавиш | sc vk


keybd_event(VK_Return , 0, 0, 0); за место второго нуля. Как я не шаманил, ничего не выходит. На прямую он не вставляется, т.к. он в 16-ой системе и делфи посылает меня подальше. Я вообще не могу понять, это же по-идее сложный скан-код (состоящий из двух). Может их по отдельности посылать надо.

Может кто помочь с Русской документацией, или угостить примерчиком?

П.С. зашел на кафедру программирования в технический универ, начал спрашивать про скан коды, преподы посмотрели на меня как на идиота и сказали что вообще ничего не знают про данные вещи.

З.Ы. Сильно не бейте за некрасивый код, мне всего лишь 15 лет

Источник: www.programmersforum.ru

Ввод с клавиатуры

При работе с клавиатурой в GameMaker у вас есть множество функций, которые можно использовать для распознавания различных состояний клавиатуры, например, нажатой или отпущенной. Есть и такие, которые сохраняют все нажатия клавиш в виде строки или могут сообщить вам, какой была последняя нажатая клавиша, а также другие, позволяющие полностью очистить состояние клавиатуры.

ПРИМЕЧАНИЕ Эти функции предназначены только для настольных платформ Windows/Mac/Ubuntu. Вы можете обнаружить, что некоторые встроенные переменные и константы не действуют на других платформах, а многие функции не будут работать на мобильных устройствах.

Каждый символ ввода с клавиши (или нескольких клавиш) определяется его кодом UTF8, который представляет собой числовое значение. Это значение может быть получено для любого символа с помощью функции ord() но в GameMaker также есть серия constants для наиболее используемых специальных клавиш клавиатуры и специальных функций. Обычно вы используете комбинацию ord() с функциями keyboard_check*() , примерно так:

Еще по теме:  Почему видео в личных сообщениях Вконтакте набирает просмотры

if keyboard_check(ord(«A»))
hspeed = -5;
>

Таким образом, приведенная выше функция проверит клавишу «A» и, если она нажата, то установит горизонтальную скорость объекта на -5. Обратите внимание, что использование ord() таким образом будет работать правильно только в том случае, если входная строка имеет длину всего один символ и представляет собой число от 0 до 9 или заглавный римский символ от A до Z. Функция ord() вернет полное значение UTF8, а функции keyboard_check*() определят только A — Z и 0 — 9. Но что, если вы хотите использовать клавиши со стрелками? Или если вы хотите изменить действие с помощью клавиши «shift»? Для этого в GameMaker есть серия констант vk_ ( vk_ означает виртуальную клавишу), которые можно использовать вместо ord() :

Virtual Key Constant (vk_*) Постоянная Описание
vk_nokey код клавиши, означающий, что ни одна клавиша не нажата
vk_anykey код клавиши, представляющий нажатие любой клавиши
vk_left код клавиши для клавиши со стрелкой влево
vk_right код клавиши для клавиши со стрелкой вправо
vk_up код клавиши для клавиши со стрелкой вверх
vk_down код клавиши для клавиши со стрелкой вниз
vk_enter клавиша ввода
vk_escape клавиша эвакуации
vk_space клавиша пробела
vk_shift любая из клавиш shift
vk_control одна из клавиш управления
vk_alt клавиша alt
vk_backspace клавиша обратного хода
vk_tab клавиша табуляции
vk_home главный ключ
vk_end конечный ключ
vk_delete клавиша удаления
vk_insert клавиша вставки
vk_pageup клавиша перехода на страницу
vk_pagedown клавиша вызова
vk_pause клавиша паузы/прерывания
vk_printscreen клавиша printscreen/sysrq
vk_f1 . vk_f12 код клавиш для функциональных клавиш F1 — F12
vk_numpad0 . vk_numpad9 цифровые клавиши на цифровой клавиатуре
vk_multiply клавиша умножения на цифровой клавиатуре
vk_divide клавиша деления на цифровой клавиатуре
vk_add клавиша добавления на цифровой клавиатуре
vk_subtract клавиша вычитания на цифровой клавиатуре
vk_decimal клавиши с десятичными точками на цифровой клавиатуре
Еще по теме:  Как сделать доступ к микрофону в ВК

Следующие константы можно использовать только с keyboard_check_direct() :

Virtual Key Constant (vk_*) Постоянная Описание
vk_lshift клавиша левого сдвига
vk_lcontrol левая клавиша управления
vk_lalt левая клавиша alt
vk_rshift правая клавиша переключения
vk_rcontrol правая клавиша управления
vk_ralt правая клавиша alt

Ниже приведен небольшой пример того, как можно использовать vk_ константы:

if keyboard_check_pressed(vk_tab)
instance_create_layer(x, y, «Controllers», obj_Menu);
>

Приведенный выше код определит, нажата ли клавиша «Tab», и создаст экземпляр объекта «obj_Menu», если да.

Если вам нужно проверить наличие ключевого символа, который не является 0 — 9, A — Z или одной из констант VK, то вам следует проверить одну из переменных keyboard_* , например, keyboard_lastchar :

var _key = keyboard_lastchar;
if ord(_key) == ord(«ç»)
show_debug_message(«ç key pressed»);
>

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

ПРИМЕЧАНИЕ: Эти функции не будут работать при использовании экранной виртуальной клавиатуры.

  • io_clear
  • keyboard_check
  • keyboard_check_pressed
  • keyboard_check_released
  • keyboard_check_direct
  • keyboard_clear
  • keyboard_set_map
  • keyboard_get_map
  • keyboard_unset_map
  • keyboard_set_numlock
  • keyboard_get_numlock

Есть также некоторые функции, которые можно использовать для имитации нажатия клавиш:

  • keyboard_key_press
  • keyboard_key_release

Наконец, следующие переменные встроены в GameMaker и могут быть доступны для получения информации о состоянии клавиатуры и вводимых данных:

ПРИМЕЧАНИЕ: При использовании виртуальной клавиатуры только переменная keyboard_string будет обновляться при вводе с клавиатуры.

  • keyboard_key
  • keyboard_lastkey
  • keyboard_lastchar
  • keyboard_string

Источник: manual-ru.yoyogames.com

Коды клавиш клавиатуры

Android Tools

Таблица кодов клавиш, которыми можно пользоваться при проверке параметра Key в обработчиках событий OnKeyDown и OnKeyUp :

Клавиша

Дес.
число

Шест.
число

Символическое
имя

Сравнение по
функции ord

Правая клавиатура при выключенной клавише NumLock:

Клавиша

Дес.
число

Шест.
число

Символическое
имя

Источник: android-tools.ru

Рейтинг
( Пока оценок нет )
Загрузка ...