Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.07.28;
Скачать: CL | DM;

Вниз

Перехват нажатия клавиш мультимедийной клавиатуры -   Найти похожие ветки 

 
greenrul ©   (2003-05-12 17:43) [0]

Например сперва юзер нажимает свою мультимедийную клавишу, я получаю ее код (если у них есть код) а потом при нажатии именно этой клавиши запускаю какую-нибудь процедурку.

И можно ли каким-либо образом получить хоть порядковый номер этой клавиши, чтобы ее нормально обозвать (юзер должен видеть какую клавишу он нажимал, а ему не напишешь - hotkey id: 257)


 
Deus   (2003-05-13 14:26) [1]

Вообще-то у _всех_ кнопок есть коды, даже у кнопок питания на клаве - писюк именно так работает. Другое дело, до чего (до какого уровня) коды этих кнопок в винде смогут добраться. В чистом досе btw _все_ кнопки должны что-то генерить. Посмотри, какие номера кнопок каким кнопкам соответствуют, и напиши то, что написано на клаве. Единого стандарта имхо нет - каждый проихводитель (ИМХО!) куда что хочет, туда и запихивает. А вообще есть реальная возможность постить на паре-тройке реальных клавиатур? Дык метод псевдонаучного тыка еще никто неотменял ;) А если хочешь, что бы всё по стандартам было, дык имхо ничего не получится - конкретные номера кнопок вероятно знают только родные дрова конкретной клавы.


 
SCHMaster ©   (2003-05-16 06:29) [2]

Ага. Бился я над этой траблой - у меня SVEN. Отключал (убивал) управляющую программу, HOOK ставил и че только не делал - все перехватывалось, только вот уже после того, действия были обработаны. Но разобрался. При установке драйвера и упр. проги устанавливается еще одна прога и запускается как сервис (WinXP).
Нужно остановить этот сервис и тогда все работает - ставиш Хук на клаву и порядок. Коды клавишь легко отлавливаются. Кстати, дрова на клаву можно не ставить.
Хук примерно такой

function ShellHook(Code: Integer; ParamW: WPARAM; ParamL: LPARAM): LRESULT; stdcall;
var
Rslt:LRESULT;
begin
if (Code >= 0) and (ParamL and $40000000 = 0) then
BEGIN
if ParamW in [95,173,174,175,176,177,178,179,183,255] // коды моих клавишь
then
begin
SendMessage(Data^.AppWnd, wm_HookMessage, ParamW, ParamL);
if Process = False then Result:=1
else Result := 0;
end;
END
ELSE
if Code < 0 then
Result := CallNextHookEx(Data^.OldHook, Code, ParamW, ParamL);
end;


 
Deus ©   (2003-05-16 16:59) [3]

Кстати, тут:
http://soft.noxious.ru/freeware/index.htm#eka
лежит прога именно для работы с мульт. клавишами....



Страницы: 1 вся ветка

Текущий архив: 2003.07.28;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.015 c
6-91791
Leran2002
2003-05-22 13:55
2003.07.28
SSH и SFTP


14-91815
Ihor Osov'yak
2003-07-13 00:01
2003.07.28
Опять вируса шлют


1-91760
Keith Flint
2003-07-15 18:11
2003.07.28
Загрузка bmp в TSlider


14-91842
euru
2003-07-10 20:35
2003.07.28
Оформление кода


3-91687
AndrewVolkov
2003-07-06 16:56
2003.07.28
UDF CString(10)?