Главная страница
    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.045 c
1-41160
Stratos
2003-11-01 02:48
2003.11.13
битовые поля в записях


3-40996
rel_
2003-10-16 10:02
2003.11.13
Помогите с запросом


14-41918
SFASS
2003-10-21 12:02
2003.11.13
Бесплатный Хостинг С PHP


14-42046
Zhouck
2003-10-15 13:49
2003.11.13
Помогите вычислить злобного хакера-киддиса


4-42311
Demetrius
2003-09-17 19:03
2003.11.13
WinInet





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский