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

Вниз

Перехват двойного нажатия клавиш такие как Alt+X   Найти похожие ветки 

 
RustiK ©   (2003-09-13 18:28) [0]

Помогите пожалуста с перехватом клавиш таких как например Alt+X.
у меня стоит хук на клавиатуру и дальше текст такой

case wm_char of

ord("X"):
begin
hw:=GetForegroundWindow;
SetWindowText(hw,"Сработал хук @2003");
end;

ord("C"):
begin
hw:=GetForegroundWindow;
SetWindowText(hw,"Сработал хук @2003");

end;

ORD("Z"):
begin
hw:=GetForegroundWindow;
SetWindowText(hw,"Сработал хук @2003");
end;
end;
end else

Я здесь могу поставить хук только на одну какую-нибудь клавишу, а мне нужно на две. Помоготи пожалуста. Уже три дня парюсь.


 
RustiK ©   (2003-09-14 14:29) [1]

Ни кто не знает что ли?


 
^^^Dragon^^^   (2003-09-14 22:58) [2]

Нужно ввести переменную boolean, при заходе в действие для каждой клавиши вначале проверять флажок: если ФОЛС, тогда делать его ТРУ и EXIt, а если Тру, тогда уже делать действие. На практике так:
var
flag:boolean;
begin

{...какойто код...}

case wm_char of

ord("X"):
begin
if flag=false then
flag:=true;
end

else

begin
flag:=false;
hw:=GetForegroundWindow;
SetWindowText(hw,"Сработал хук @2003");
end;
end;
end;

Наверное так, Делфи под рукой нет, поэтому не проверял...


 
^^^Dragon^^^   (2003-09-14 23:00) [3]

Ошибся...
var
flag:boolean;
begin

{...какойто код...}

case wm_char of

ord("X"):
begin
if flag=false then flag:=true

else

begin
flag:=false;
hw:=GetForegroundWindow;
SetWindowText(hw,"Сработал хук @2003");
end;
end;
end;


 
Diamond Cat ©   (2003-09-15 02:21) [4]


> ^^^Dragon^^^ (14.09.03 23:00) [3]

Да здраствует разум, да згинет маразм....

2 RustiK © ->
Если лень почетать хелп по wm_char то привожу его кусок тут
29 Specifies the context code. The value is 1 if the ALT key is held down while the key is pressed; otherwise, the value is 0.
также почитай хелп по функциям shr и shl с их помощью можно докапаться до этого самого флага и уж если совсем лень, то проверяй с помощью getkeystate с флагом vk_menu


 
RustiK ©   (2003-09-15 09:32) [5]

Сейчас попробуем


 
novenkiy   (2003-09-15 10:32) [6]

Ребята нашел я способ вот пример решения этой проблемы

http://delphimaster.net/view/4-1063366449/



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

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

Наверх




Память: 0.48 MB
Время: 0.07 c
7-42205
Павлов Александр
2003-08-25 14:44
2003.11.13
Как определить из MS-DOS вендора и модель чипсета?


1-41254
phan
2003-10-29 23:18
2003.11.13
Вставка визуального коспонента в StringGrid/DrawGrid


1-41627
oleg_SYS
2003-10-26 11:04
2003.11.13
Нужен компонент Memo с неограниченным размером вводимого текста


11-41129
SGh
2003-02-17 21:24
2003.11.13
Так все же где Hint?


1-41477
Евгений Т.
2003-10-28 18:04
2003.11.13
Получить директорий из которого запущен exe-файл