![]() ![]() |
| Айра |
9.12.2007 1:50
Сообщение
#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 теперь полновластно принадлежит компилятору, вот только звонилка на вверенные ей клавиши не риагирует.. Может код клавиш не тот? и еще одна глупая мысль: а коды клавиш на всех клавиатурах одинаковые, просто у ноутбука кнопочек меньше.. Заранее спасибо за помощь! |
| Michael_Rybak |
9.12.2007 2:54
Сообщение
#2
|
|
Michael_Rybak ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 1 046 Пол: Мужской Реальное имя: Michael_Rybak Репутация: 32 |
|
| andriano |
9.12.2007 13:32
Сообщение
#3
|
|
Гуру ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 168 Пол: Мужской Реальное имя: Сергей Андрианов Репутация: 28 |
Для того, чтобы не ломать голову каждый раз, когда нужно узнать код той или иной клавиши, пользовался программой:
uses My_crt; My_crt - модуль, содержащий лишь readkey и keypressed. |
| volvo |
9.12.2007 14:52
Сообщение
#4
|
|
Гость |
Только какая связь между получаемыми тобой кодами и виртуальными кодами клавиш Windows, о которых идет речь (неужели ты не заметил VK_ ?) - совершенно непонятно...
|
| Айра |
10.12.2007 0:21
Сообщение
#5
|
|
Профи ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 731 Пол: Женский Репутация: 25 |
Попробовала поменять: возникла проблема с восприятием программой шестнадцатеричных значений, записанных буквами, как то 7А или 7B, пришлось использоваться кнопки только с циферным обозначением, и Shift прошел как 0x0004..
Всем спасибо Сообщение отредактировано: Айра - 10.12.2007 0:21 |
| klem4 |
10.12.2007 8:31
Сообщение
#6
|
![]() Perl. Just code it! ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 4 100 Пол: Мужской Реальное имя: Андрей Репутация: 44 |
andriano, ты уверен что такой программой ты сможешь определить код любой клавиши ? В часности со стрелками например у тебя ничего не получится. (это я про ДОС)
Сообщение отредактировано: klem4 - 10.12.2007 8:31 -------------------- perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
|
| SKVOZNJAK |
10.12.2007 16:20
Сообщение
#7
|
![]() Профи ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 930 Пол: Мужской Репутация: 11 |
А может проще исходники компилятора изменить и скомпилировать.
|
| andriano |
10.12.2007 22:39
Сообщение
#8
|
|
Гуру ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 168 Пол: Мужской Реальное имя: Сергей Андрианов Репутация: 28 |
Только какая связь между получаемыми тобой кодами и виртуальными кодами клавиш Windows, о которых идет речь (неужели ты не заметил VK_ ?) - совершенно непонятно... Действительно не заметил. Смутила комбинация Ctrl+F9. В принципе не вижу ничего сложного в том, чтобы совершенно аналогичным образом получать номера клавиш в Винде. Добавлено через 3 мин. andriano, ты уверен что такой программой ты сможешь определить код любой клавиши ? В часности со стрелками например у тебя ничего не получится. (это я про ДОС) Ты будешь удивлен, но со стрелками как раз получается. Этим способом гн удастся "поймать" нажатия клавиш-модификаторов. Но они есть в области данных BIOS по смещениям $17 и $18(если мне не изменяет память). Если и этого мало, нужно писать обработчик препывания клавиатуры. |
![]() ![]() |
|
Текстовая версия | 8.12.2025 8:27 |