![]() |
|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 02.10.2015
Сообщений: 20
|
![]()
Прошу сильно не пинать. Я гуглил... но не смог найти ответа. Почему в разных источниках указываются разные коды виртуальных клавиш?
В частности, в 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. |
![]() |
![]() |
![]() |
#2 |
Старожил
Регистрация: 15.02.2010
Сообщений: 15,709
|
![]()
Для вас делфи обработала. На уровне апи там еще чуть более сложнее, например, есть Alt и Alt Gr. Если интересны подробности, то гуглите wm_input keyboard.
|
![]() |
![]() |
![]() |
#3 | |
Пользователь
Регистрация: 02.10.2015
Сообщений: 20
|
![]() Цитата:
_____________ * Со скан-кодами — аналогичная проблемка... отсюда можно почерпнуть сведения, что левый Ctrl должен быть представлен как 0x1D, а правый представляется сразу двумя скан-кодами: 0xE0, 0x1D, а у меня программа возвращает что для левого, что для правого CTRL один и тот же скан-код: 0x1D... (а возможно, просто для правого я теряю часть данных...) |
|
![]() |
![]() |
![]() |
#4 |
Форумчанин
Регистрация: 02.03.2013
Сообщений: 109
|
![]()
Иногда нужно определить какой именно Ctrl нажат:
https://books.google.com.sg/books?id...ontrol&f=false |
![]() |
![]() |
![]() |
#5 |
Форумчанин
Регистрация: 12.04.2017
Сообщений: 889
|
![]()
Вам нада описать свой обработчик сообщения wm_input.Помню там слово message было, а точнее - никак, с 2008 не видел дельфей.
Вобщем смысл такой - замещаете тот, что дает дельфи на свой. И в своем че угодно. |
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Коды Виртуальных клавиш. | 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 |