Форум программистов  
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

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

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

Ответ
 
Опции темы
Старый 12.10.2017, 23:30   #1
mxustin
Пользователь
 
Аватар для mxustin
 
Регистрация: 02.10.2015
Адрес: Россия, Ростовская область
Сообщений: 18
Репутация: 24

skype: mxustin
Вопрос Разные коды виртуальных клавиш в 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 в 23:33.
mxustin вне форума   Ответить с цитированием
Старый 13.10.2017, 01:12   #2
p51x
Профессионал
 
Регистрация: 15.02.2010
Сообщений: 9,963
Репутация: 1573

icq: 216409213
По умолчанию

Для вас делфи обработала. На уровне апи там еще чуть более сложнее, например, есть Alt и Alt Gr. Если интересны подробности, то гуглите wm_input keyboard.
__________________
Запомните раз и навсегда: помочь != "решите за меня"!
p51x на форуме   Ответить с цитированием
Старый 13.10.2017, 01:56   #3
mxustin
Пользователь
 
Аватар для mxustin
 
Регистрация: 02.10.2015
Адрес: Россия, Ростовская область
Сообщений: 18
Репутация: 24

skype: mxustin
По умолчанию

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

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

skype: raw_2_raw
По умолчанию

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

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

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



Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Коды Виртуальных клавиш. 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 11:23
Коды клавиш KAMASUTR Gamedev - cоздание и обсуждение игр 11 09.08.2007 22:25




15:15.


Powered by vBulletin® Version 3.8.8 Beta 2
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.

купить трафик


как улучшить посещаемость, а также решения по монетизации сайтов, видео и приложений

RusProfile.ru


Справочник российских юридических лиц и организаций.
Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru