IPB
ЛогинПароль:

 
 Ответить  Открыть новую тему 
> Коды клавиш
сообщение
Сообщение #1


Профи
****

Группа: Пользователи
Сообщений: 731
Пол: Женский

Репутация: -  25  +


Привет!
Дано: программка дозвона которая очень неудобно появляется при нажатии Ctrl+F9.. думаю здесь меня все поймут))
Задача: переопределить в ней клавиши..
Решение: мне нужно было создать файл KEY.txt, где сделать запись вида:
[KEY]
VK_F9=код_переопределенной_клавиши_для_F9
....
MOD_K=код_переопределенной_клавиши_для_Ctrl

т.е. для того чтобы поменять комбинация Ctrl+F9 на Shift+F9
я должна была ввести
[KEY]
VK_F9=0x74
...
MOD_K=0x0004

Я все сделала, Ctrl+F9 теперь полновластно принадлежит компилятору, вот только звонилка на вверенные ей клавиши не риагирует.. sad.gif

Может код клавиш не тот? и еще одна глупая мысль: а коды клавиш на всех клавиатурах одинаковые, просто у ноутбука кнопочек меньше.. smile.gif (чувствую себя блондинкой, нужно еще специальную клавиатуру купить..)

Заранее спасибо за помощь!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Michael_Rybak
*****

Группа: Пользователи
Сообщений: 1 046
Пол: Мужской
Реальное имя: Michael_Rybak

Репутация: -  32  +


f9 вроде бы 0x78.
шифт вроде бы 0xA0

http://delphi.about.com/od/objectpascalide/l/blvkc.htm
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Гуру
*****

Группа: Пользователи
Сообщений: 1 168
Пол: Мужской
Реальное имя: Сергей Андрианов

Репутация: -  28  +


Для того, чтобы не ломать голову каждый раз, когда нужно узнать код той или иной клавиши, пользовался программой:
uses My_crt;
var c : char;
begin
writeln('ä½∩ óδσ«ñá ¡áª¼¿ΓÑ ¬½áó¿Φπ A');
repeat
c := readkey;
writeln(byte©);
until c = 'A';
end.

My_crt - модуль, содержащий лишь readkey и keypressed.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Гость






Только какая связь между получаемыми тобой кодами и виртуальными кодами клавиш Windows, о которых идет речь (неужели ты не заметил VK_ ?) - совершенно непонятно...
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


Профи
****

Группа: Пользователи
Сообщений: 731
Пол: Женский

Репутация: -  25  +


Попробовала поменять: возникла проблема с восприятием программой шестнадцатеричных значений, записанных буквами, как то 7А или 7B, пришлось использоваться кнопки только с циферным обозначением, и Shift прошел как 0x0004..

Всем спасибо smile.gif

Сообщение отредактировано: Айра -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #6


Perl. Just code it!
******

Группа: Пользователи
Сообщений: 4 100
Пол: Мужской
Реальное имя: Андрей

Репутация: -  44  +


andriano, ты уверен что такой программой ты сможешь определить код любой клавиши ? В часности со стрелками например у тебя ничего не получится. (это я про ДОС)

Сообщение отредактировано: klem4 -


--------------------
perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #7


Профи
****

Группа: Пользователи
Сообщений: 930
Пол: Мужской

Репутация: -  11  +


А может проще исходники компилятора изменить и скомпилировать.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #8


Гуру
*****

Группа: Пользователи
Сообщений: 1 168
Пол: Мужской
Реальное имя: Сергей Андрианов

Репутация: -  28  +


Цитата(volvo @ 9.12.2007 14:52) *

Только какая связь между получаемыми тобой кодами и виртуальными кодами клавиш Windows, о которых идет речь (неужели ты не заметил VK_ ?) - совершенно непонятно...

Действительно не заметил. Смутила комбинация Ctrl+F9.
В принципе не вижу ничего сложного в том, чтобы совершенно аналогичным образом получать номера клавиш в Винде.

Добавлено через 3 мин.
Цитата(klem4 @ 10.12.2007 8:31) *

andriano, ты уверен что такой программой ты сможешь определить код любой клавиши ? В часности со стрелками например у тебя ничего не получится. (это я про ДОС)

Ты будешь удивлен, но со стрелками как раз получается.
Этим способом гн удастся "поймать" нажатия клавиш-модификаторов. Но они есть в области данных BIOS по смещениям $17 и $18(если мне не изменяет память).
Если и этого мало, нужно писать обработчик препывания клавиатуры.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 19.04.2024 5:33
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name