Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > Доп клавиши на клаве


Автор: Akella 11.11.2003, 10:35
baaa.gif На некоторых расширенных клавиатурах есть несколько дополнительных клавиш, такие как громкость, стоп, вперед, назад (это все работает с Windows Media Player), вызов Internet Explorer, вперед, назад.
Как из Delphi узнать их коды или как с ними работать правильно.

Автор: <Spawn> 11.11.2003, 13:15
Очень просто smile.gif. Создаешь новый проект и пишешь обаботчик OnKeyDown формы (KeyPreview := True) :

Код
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
 Shift: TShiftState);
begin
 ListBox1.Items.Add(IntToStr(Key));
end;


... и понажимай эти кнопочки.

Автор: Paradox 11.11.2003, 13:19
Ответ конечно тупой, но думаю поможет:
Заведи для чего-нить обработчик OnKeyDown и в дебагере посмотри чему равен параметр key
Например:
Код
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
 Shift: TShiftState);
для windows клавиши с логотипом код равен 91

Автор: Paradox 11.11.2003, 13:20
Когда писал ответа еще не было

Автор: Paradox 11.11.2003, 13:23
<Spawn> че то твой вариант не работает а вот так катит
Код
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
 Shift: TShiftState);
begin
 label1.caption:=IntToStr(key);
end;

Автор: gray_k 11.11.2003, 13:37
Нет, так ничего не выйдет. Ведь OnKeyDown работает на стандартную клаву. У меня Logitech с кучей доп. клавиш. Так вот ни на одну из них OnKeyDown не срабатывает. Правда у меня стоит её(клавы) драйвер. Если драйвера нет, то может и отловит, надор попробовать.

Автор: gray_k 11.11.2003, 13:42
Проверил. smile.gif
Если выгрузить из памяти родную ловушку клавы, то код отлавливается, но у некоторых клавиш он почему-то одинаковый.

Автор: Paradox 11.11.2003, 13:56
а МОЖЕТ найти таблицу с которой клава переводит сигналы от клавиш в коды и посмотреть че там (в линухе то это точно можно глянуть, а в виндовсе не знаю)

Автор: <Spawn> 11.11.2003, 14:32
gray_k Нет, так ничего не выйдет.

На моей почему то работает.

To dsergey Если тебе хочется обрабатывать нажатия на эти кнопки глобально, то придется ставить хук.

Автор: Baa 11.11.2003, 16:06
Кстати smile.gif вот вам темка smile.gif есть такая клава Microsoft Multimedia Natural Keyboard
Так вот на онной клаве есть такая кнопа, как FLock
Какой у неё сканкод?
з.ы. через несколько часов исследований пришел к выводу, что это кнопка вообще ничего не передает в комп, а изменяет флаг на контроллере клавиатуры (т.е. на платке, что внутри клавы)
Может я ошибаюсь?
Но проблема-то в чем? smile.gif Задалбывает все время нажимать FLock при загрузке винды, а state кнопки соотв. не сохраняется, и после сброса питания она выключена.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)