Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Свободное общение _ Коды клавиш

Автор: Айра 9.12.2007 5:50

Привет!
Дано: программка дозвона которая очень неудобно появляется при нажатии 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 (чувствую себя блондинкой, нужно еще специальную клавиатуру купить..)

Заранее спасибо за помощь!

Автор: Michael_Rybak 9.12.2007 6:54

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

http://delphi.about.com/od/objectpascalide/l/blvkc.htm

Автор: andriano 9.12.2007 17:32

Для того, чтобы не ломать голову каждый раз, когда нужно узнать код той или иной клавиши, пользовался программой:

uses My_crt;
var c : char;
begin
writeln('ä½∩ óδσ«ñá ¡áª¼¿ΓÑ ¬½áó¿Φπ A');
repeat
c := readkey;
writeln(byte©);
until c = 'A';
end.

My_crt - модуль, содержащий лишь readkey и keypressed.

Автор: volvo 9.12.2007 18:52

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

Автор: Айра 10.12.2007 4:21

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

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

Автор: klem4 10.12.2007 12:31

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

Автор: SKVOZNJAK 10.12.2007 20:20

А может проще исходники компилятора изменить и скомпилировать.

Автор: andriano 11.12.2007 2:39

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

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

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

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

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

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