Форум: "WinAPI";
Текущий архив: 2003.11.13;
Скачать: [xml.tar.bz2];
ВнизПерехват двойного нажатия клавиш такие как 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 вся ветка
Форум: "WinAPI";
Текущий архив: 2003.11.13;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.037 c