![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Key_Hook и зажатие клавиши
SerMax © (2006-11-19 15:29:00)Пишу программу, отлавливающую все нажатия клавиш в системе (хочу уровень громкости менять с клавиатуры :)
Хотелось бы знатЬ, можно ли отследить ЗАжатие обычной клавиши (например "g").
Вот есть часть кода :
function Key_Hook(Code: integer; wParam: word; lParam: Longint): Longint;stdcall; export;
var ch:char;
begin
ch:=chr(wParam);
if HiWord(GetKeyState(VK_MENU)) <> 0 then
begin
if HiWord(GetKeyState(VK_CONTROL)) <> 0 then
if (ch='g') or (ch='G') then
begin
ShowMessage('Nazali ALT+CTRL+g!!!');
end;
end;
Я зажимаю ALT+CTRL+g....если g ЗАжата (я её не отпускаю), то выводится сообщение ShowMessage('Nazali ALT+CTRL+g!!!');
Мне надо, чтобы это окно выводилось только пРИ ПЕРВОМ нажатии...и при следующих. Но никак не в случае, когда клавиша просто нажата и не отпускается.
Вроде бы lParam отвечает за длительность нажатия....я пишу :
if (LoWord(lParam)=1) then //если нажали и сразу отпустили.
Но это не помогает !
Помогите, кто чем может !
Elen (2006-11-20 08:53:00) [1]
> хочу уровень громкости менять с клавиатуры :)
Делай как в ВинАмпе - регистрируй свою Hot Key.
SerMax (2006-11-19 18:02:00) [2]Так вся суть и состоит в тоМ, КАК ЭТО СДЕЛАТЬ ? !
Anatoly Podgoretsky (2006-11-19 15:48:00) [3]> SerMax (19.11.2006 15:29:00) [0]
Клавиатура работает с автоповтором, или удаляй автоповтор или вводи проверку на первое нажатие и отжатие.