Модераторы: Daevaorn

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Коды клавиш 
:(
    Опции темы
mr.Anderson
Дата 8.8.2005, 17:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


iOS Lead Developer
****


Профиль
Группа: Участник Клуба
Сообщений: 3374
Регистрация: 20.12.2004
Где: далеко

Репутация: нет
Всего: 128



Дайте, пожалуйста, список кодов всех клавиш (ну, или хотя бы не алфавитно-цифровых, а системных, т.е. Enter, ESC, F1, F2, Home, PageUp и т.д.).


--------------------
user posted image

user posted image
PM MAIL ICQ Skype   Вверх
comcon1
Дата 8.8.2005, 18:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 838
Регистрация: 11.6.2005
Где: Москва ДАС-МГУ

Репутация: 12
Всего: 17



Для этого уважающий себя человек пишет прогу, которая берет с клавы символ, а печатает его код. Тока не надо спрашивать, как ее писать. Просто сядь и напиши. А вопросы - потом.
Вот то что помню :
-------------------------------
Del - 8
Esc - 27
Space - 32
-------------------------------


--------------------
PM MAIL   Вверх
mr.Anderson
Дата 8.8.2005, 18:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


iOS Lead Developer
****


Профиль
Группа: Участник Клуба
Сообщений: 3374
Регистрация: 20.12.2004
Где: далеко

Репутация: нет
Всего: 128



Мне, в принципе, как раз код Del в данный момент и нужен. smile
Но как писать программу, я просто в самом деле не представляю... Как считать символ - понятно, но как вывести код - просто понятия не имею.


--------------------
user posted image

user posted image
PM MAIL ICQ Skype   Вверх
Дрон
Дата 8.8.2005, 18:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Java-ненавистник :)
****


Профиль
Группа: Участник Клуба
Сообщений: 3179
Регистрация: 29.12.2002
Где: Санкт-Петербург

Репутация: 10
Всего: 93



sim7
Сейчас скажу как вывести код...
Только учти. После этого тебе должно стать стыдно. Очень стыдно.
Код

printf("%i\n", getch());


Если не стало... Ну тогда, батенька, купите что ли умных книжек по С++ smile
И не по Visual C++, а самые самые основы.

Это сообщение отредактировал(а) Дрон - 8.8.2005, 18:21


--------------------
Да. Именно так.
PM   Вверх
mr.Anderson
Дата 8.8.2005, 18:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


iOS Lead Developer
****


Профиль
Группа: Участник Клуба
Сообщений: 3374
Регистрация: 20.12.2004
Где: далеко

Репутация: нет
Всего: 128



Стало стыдно, но только оттого, что я не нашел учебника, в котором был бы описан спецификатор %i для функции printf. Иначе я бы не спрашивал. smile


--------------------
user posted image

user posted image
PM MAIL ICQ Skype   Вверх
Дрон
Дата 8.8.2005, 18:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Java-ненавистник :)
****


Профиль
Группа: Участник Клуба
Сообщений: 3179
Регистрация: 29.12.2002
Где: Санкт-Петербург

Репутация: 10
Всего: 93



sim7
Ну %i это то же самое, что %d. Просто выводит число.

Пользуюсь им по старой привычке smile


--------------------
Да. Именно так.
PM   Вверх
mr.Anderson
Дата 8.8.2005, 18:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


iOS Lead Developer
****


Профиль
Группа: Участник Клуба
Сообщений: 3374
Регистрация: 20.12.2004
Где: далеко

Репутация: нет
Всего: 128



Вон как. А почему при нажатии клавиш типа DEL или PAGEUP сначала выводится 0, а затем уже код кнопки?
comcon1, прога выдает, что код DEL'а 83, а не 8. smile


--------------------
user posted image

user posted image
PM MAIL ICQ Skype   Вверх
Дрон
Дата 8.8.2005, 18:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Java-ненавистник :)
****


Профиль
Группа: Участник Клуба
Сообщений: 3179
Регистрация: 29.12.2002
Где: Санкт-Петербург

Репутация: 10
Всего: 93



Цитата(sim7 @ 8.8.2005, 19:32)
он как. А почему при нажатии клавиш типа DEL или PAGEUP сначала выводится 0, а затем уже код кнопки?

Это специально, чтобы различать обычные клавиши и управляющие.

Код 8 -- это вроде backspace.



--------------------
Да. Именно так.
PM   Вверх
mr.Anderson
Дата 8.8.2005, 18:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


iOS Lead Developer
****


Профиль
Группа: Участник Клуба
Сообщений: 3374
Регистрация: 20.12.2004
Где: далеко

Репутация: нет
Всего: 128



Ну, тогда полный порядок. Спасибо! smile


--------------------
user posted image

user posted image
PM MAIL ICQ Skype   Вверх
cardinal
Дата 8.8.2005, 18:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Инженер
****


Профиль
Группа: Экс. модератор
Сообщений: 6003
Регистрация: 26.3.2002
Где: Германия

Репутация: 2
Всего: 99



Смотрите тут: smile
VB-VB-002027


--------------------
Немецкая оппозиция потребовала упростить натурализацию иммигрантов
В моем блоге: Разные истории из жизни в Германии

"Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино".  А. и Б. Стругацкие
PM   Вверх
codelord
Дата 9.8.2005, 17:50 (ссылка)  | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 777
Регистрация: 7.5.2005
Где: ты моя темноглаза я где?!

Репутация: 1
Всего: 39



Только не спрашивайте зачем я выдаю такую таблицу,
sim7 уже успел столкнуться с проблемами, по поводу кодов.

Ниже приведены коды клавиш, которыми можно пользоваться при обработке символов, строк, при проверке параметра Key в обработчиках событий OnKeyDown и OnKeyUp. Символы кириллицы соответствуют тем клавишам с латинскими символами, на которых они размещены.
Код

       dec   hex
F1    112    0x70    VK_F1    
F2    113    0x71    VK_F2    
F3    114    0x72    VK_F3    
F4    115    0x73    VK_F4    
F5    116    0x74    VK_F5    
F6    117    0x75    VK_F6    
F7    118    0x76    VK_F7    
F8    119    0x77    VK_F8    
F9    120    0x78    VK_F9    
F10    121    0x79    VK_F10    
пробел    32    0x20    VK_SPACE    
BackSpace    8    0x8    VK_BACK    
Tab    9    0x9    VK_TAB    
Enter    13    0x0D    VK_RETURN    
Shift    16    0x10    VK_SHIFT    
Ctrl    17    0x11    VK_CONTROL    
Alt    18    0x12    VK_MENU    
CapsLock    20    0x14    VK_CAPITAL    
Esc    27    0x1B    VK_ESCAPE    
Insert    45    0x2D    VK_INSERT    
PageUp    33    0x21    VK_PRIOR    
PageDown    34    0x22    VK_NEXT    
End    35    0x23    VK_END    
Home    36    0x24    VK_HOME    
37    0x25    VK_LEFT    
38    0x26    VK_UP    
39    0x27    VK_RIGHT    
40    0x28    VK_DOWN    
Delete    46    0x2E    VK_DELETE    
PrintScreen    44    0x2C    VK_SNAPSHOT    
ScrollLock    145    0x91    VK_SCROLL    
Pause    19    0x13    VK_PAUSE    
NumLock    144    0x90    VK_NUMLOCK    
0,)    48    0x30  '0'
1 !    49    0x31  '1'
2 @    50    0x32  '2'
3 #    51    0x33  '3'
4 $    52    0x34  '4'
5 %    53    0x35  '5'
6 ^    54    0x36  '6'
7 &    55    0x37  '7'
8 *    56    0x38  '8'
9 (    57    0x39  '9'
` ~    192    0xC0  
- _    189    0xBD  
= +    187    0xBB  
[ {    219    0xDB  
] }    221    0xDD  
; :    186    0xBA  
' "    222    0xDE  
\ |    220    0xDC  
, <    188    0xBC  
. >    190    0xBE  
/ ?    191    0xBF  
a,A    65    0x41  'A'
b,B    66    0x42  'B'
c,C    67    0x43  'C'
d,D    68    0x44  'D'
e,E    69    0x45  'E'
f,F    70    0x46  'F'
g,G    71    0x47  'G'
h,H    72    0x48  'H'
i,I    73    0x49  'I'
j,J    74    0x4A  'J'
k,K    75    0x4B  'K'
l,L    76    0x4C  'L'
m,M    77    0x4D  'M'
n,N    78    0x4E  'N'
o,O    79    0x4F  'O'
p,P    80    0x50  'P'
q,Q    81    0x51  'Q'
r,R    82    0x52  'R'
s,S    83    0x53  'S'
t,T    84    0x54  'T'
u,U    85    0x55  'U'
v,V    86    0x56  'V'
w,W    87    0x57  'W'
x,X    88    0x58  'X'
y,Y    89    0x59  'Y'
z,Z    90    0x5A  'Z'
На правой клавиатуре при выключенной клавише NumLock
0    96    0x60    VK_NUMPAD0    
1    97    0x61    VK_NUMPAD1    
2    98    0x62    VK_NUMPAD2    
3    99    0x63    VK_NUMPAD3    
4    100    0x64    VK_NUMPAD4    
5    101    0x65    VK_NUMPAD5    
6    102    0x66    VK_NUMPAD6    
7    103    0x67    VK_NUMPAD7    
8    104    0x68    VK_NUMPAD8    
9    105    0x69    VK_NUMPAD9    
*    106    0x6A    VK_MULTIPLY    
+    107    0x6B    VK_ADD    
-    109    0x6D    VK_SUBTRACT    
.  110    0x6E    VK_DECIMAL    
/  111    0x6F    VK_DIVIDE






Это сообщение отредактировал(а) codelord - 9.8.2005, 17:53


--------------------
Доступен поиск по исходным кодам в GOOGLE.
http://www.google.com/codesearch
PM MAIL   Вверх
comcon1
Дата 9.8.2005, 17:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 838
Регистрация: 11.6.2005
Где: Москва ДАС-МГУ

Репутация: 12
Всего: 17



Приведенные константы определены в Борландовских библиотеках?? Я имею ввиду VK_...
Отправь эту таблицу в FAQ.

Это сообщение отредактировал(а) comcon1 - 9.8.2005, 17:52


--------------------
PM MAIL   Вверх
Earnest
Дата 9.8.2005, 19:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5962
Регистрация: 17.6.2005
Где: Рязань

Репутация: 53
Всего: 183



Виртуальные коды VK_XXX определены в winuser.h.
Насчет обработки строк... это не совсем то, что приходит в WM_CHAR. Виртуальные коды связаны с конкретной клавишей и не зависят от регистра, языка, etc. В таком первозданном виде они приходят в WM_KEYDOWN \ WM_KEYUP. А вот в WM_CHAR они приходят уже в преобразованном виде (в зависимости от CAPS LOCK и т.д.), и доходят не все. Надеюсь, sim7 это поможет - многие новички сначала путают.


--------------------
...
PM   Вверх
mr.Anderson
Дата 11.8.2005, 18:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


iOS Lead Developer
****


Профиль
Группа: Участник Клуба
Сообщений: 3374
Регистрация: 20.12.2004
Где: далеко

Репутация: нет
Всего: 128



codelord, огроменное спасибо за коды! Мне они очень помогли и еще не раз помогут. smile


--------------------
user posted image

user posted image
PM MAIL ICQ Skype   Вверх
Dr.Wisdom
Дата 19.8.2005, 00:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 145
Регистрация: 6.1.2005

Репутация: нет
Всего: 0



хатите прогу на пасюке?
Код

while 1=1 do
begin
s := readkey;
if ord(s) = 0 then s:=readkey;
writeln(ord(s));
end;


--------------------
VIVA LA RESISTANCE
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1392 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.