Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Низкоуровневое программирование > Win Api
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 12.10.2017, 22:30   #1
mxustin
Пользователь
 
Аватар для mxustin
 
Регистрация: 02.10.2015
Сообщений: 20
Вопрос Разные коды виртуальных клавиш в MSDN и в других источниках

Прошу сильно не пинать. Я гуглил... но не смог найти ответа. Почему в разных источниках указываются разные коды виртуальных клавиш?

В частности, в MSDN различаются левая и правая клавиши CONTROL (CTRL) и даны следующие значения:

VK_LCONTROL (LEFT CONTROL KEY) = 162 (0xA2)
VK_RCONTROL (RIGHT CONTROL KEY) = 163 (0xA3)

А, например, тут разницы между левой и правой клавишами Ctrl не отражено, и для обеих приводится одно значение:

VK_CONTROL (CONTROL KEY) = 17 (0x11)

На деле мне в моей программе (на Delphi) не удается получить коды, которые описаны в MSDN. Что при нажатии левой, что при нажатии правой клавиши Ctrl я получаю 17 (0x11). Тут бы, как раз, и успокоиться, и решить, что «MSDN — козел!» и поверить-таки этому источнику, и, наконец, собственным глазам, но, вот... что-то не дает мне покоя.

Не зря же в MSDN написано то, что написано... это — какие-то другие коды? или какие-то другие виртуальные клавиши?.. или как?..

Кто-нибудь может объяснить, почему так?..

Последний раз редактировалось mxustin; 12.10.2017 в 22:33.
mxustin вне форума Ответить с цитированием
Старый 13.10.2017, 00:12   #2
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,695
По умолчанию

Для вас делфи обработала. На уровне апи там еще чуть более сложнее, например, есть Alt и Alt Gr. Если интересны подробности, то гуглите wm_input keyboard.
p51x на форуме Ответить с цитированием
Старый 13.10.2017, 00:56   #3
mxustin
Пользователь
 
Аватар для mxustin
 
Регистрация: 02.10.2015
Сообщений: 20
По умолчанию

Цитата:
Сообщение от p51x Посмотреть сообщение
Для вас делфи обработала. На уровне апи там еще чуть более сложнее, например, есть Alt и Alt Gr. Если интересны подробности, то гуглите wm_input keyboard.
Не нашел кнопки "Спасибо!", поэтому выражаю благодарность словами. Пока что и так голова лопается, поэтому в сторону wm_input решил не копать (для моей задачи, вроде бы, этого не потребуется), а просто смириться с тем, что Delphi некоторым образом меняет виртуальные коды клавиш (судя по всему, и скан-коды тоже*).

_____________
* Со скан-кодами — аналогичная проблемка... отсюда можно почерпнуть сведения, что левый Ctrl должен быть представлен как 0x1D, а правый представляется сразу двумя скан-кодами: 0xE0, 0x1D, а у меня программа возвращает что для левого, что для правого CTRL один и тот же скан-код: 0x1D... (а возможно, просто для правого я теряю часть данных...)
mxustin вне форума Ответить с цитированием
Старый 15.10.2017, 10:06   #4
dummy_user
Форумчанин
 
Аватар для dummy_user
 
Регистрация: 02.03.2013
Сообщений: 109
По умолчанию

Иногда нужно определить какой именно Ctrl нажат:

https://books.google.com.sg/books?id...ontrol&f=false
dummy_user вне форума Ответить с цитированием
Старый 15.10.2017, 14:45   #5
alexzk
Форумчанин
 
Регистрация: 12.04.2017
Сообщений: 889
По умолчанию

Вам нада описать свой обработчик сообщения wm_input.Помню там слово message было, а точнее - никак, с 2008 не видел дельфей.
Вобщем смысл такой - замещаете тот, что дает дельфи на свой. И в своем че угодно.
alexzk вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Коды Виртуальных клавиш. xaero93 Помощь студентам 7 21.11.2012 09:07
Коды клавиш Elloriane Общие вопросы C/C++ 12 20.03.2012 21:32
статья - Функция GetKeyboardState копирует состояние 256 виртуальных клавиш в заданный буфер. Pblog Обсуждение статей 0 23.06.2010 05:13
коды клавиш на ТС alex(21) Общие вопросы C/C++ 1 13.11.2009 10:23
Коды клавиш KAMASUTR Gamedev - cоздание игр: Unity, OpenGL, DirectX 11 09.08.2007 22:25