Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "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
1-41391
dn
2003-10-26 21:18
2003.11.13
TStringGrid и ASCII


14-42015
Кен
2003-10-15 05:57
2003.11.13
Посоветуйте, какой нибудь хороший форум по Спутниковому ТВ ?


3-41056
malkolinge
2003-10-24 11:29
2003.11.13
XML


8-41754
h@1f-e1f
2003-07-17 14:28
2003.11.13
Вращение TBitmap


3-40930
Chaked
2003-10-17 17:23
2003.11.13
Отчеты





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский