Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2006.08.06;
Скачать: [xml.tar.bz2];

Вниз

постановка хука на клавиатуру и мышь?   Найти похожие ветки 

 
Levin_610 ©   (2006-07-12 14:44) [0]

скажите пожалуйста, хуки WH_KEYBOARD и  WH_MOUSE отслеживают соответсвтвенно нажатие кнопки клавы и мыши, какие у них параметры и что они возвращают в случае нажатия клавиши или что происходит в случае нажатия кнопки клавиатуры или мыши?


 
Сергей М. ©   (2006-07-12 14:56) [1]

Справку читал ?


 
Levin_610 ©   (2006-07-12 14:59) [2]

?


 
Levin_610 ©   (2006-07-12 14:59) [3]

про эти хуки?


 
Сергей М. ©   (2006-07-12 15:05) [4]

Ну не про Пушкина же...


 
Levin_610 ©   (2006-07-12 15:10) [5]

да, такой вопрос как поставить хук на клавиатуру\мышь не на отдельную кнопку а вообще, кстати про пушкина тоже что читал)


 
Levin_610 ©   (2006-07-12 15:18) [6]

ок, пусть начинающим, но на вопрос ответ напишите пожалуйста


 
Сергей М. ©   (2006-07-12 15:18) [7]


> про пушкина тоже что читал


Про дуб зеленый ?)


> как поставить хук на клавиатуру\мышь не на отдельную кнопку
> а вообще


сказка про белого бычка)..

см. [1]

?


 
Levin_610 ©   (2006-07-12 15:20) [8]

нет, меня не правильно поняли), мне не нужно сказок про бычка, мне нужно знать, как поставить хук) - очень нужно, вопрос жизни и смерти.


 
Сергей М. ©   (2006-07-12 15:25) [9]


> мне нужно знать, как поставить хук


В соответствии с MSDN - с пом. ф-ции SetWindowsHookEx


 
Levin_610 ©   (2006-07-12 15:31) [10]

это я понял, а что у неё должно быть в параметрах SetWindowsHookEx(?)
и что она возвращает?


 
Сергей М. ©   (2006-07-12 15:34) [11]

[1] читал ?


 
Levin_610 ©   (2006-07-12 15:34) [12]

MyHookHandle := SetWindowsHookEx(WH_Keyboard - первый параметр такой?, а др7


 
Сергей М. ©   (2006-07-12 15:36) [13]

Ну нельзя же быть таким тупым)..

[11] читал ?


 
Levin_610 ©   (2006-07-12 15:37) [14]

читал, да я дебил, что тут поделать(


 
Сергей М. ©   (2006-07-12 15:40) [15]

Тогда тебе не сюда).. не по адресу ты обратился.


 
Levin_610 ©   (2006-07-12 15:43) [16]

спасибо за помощь


 
Сергей М. ©   (2006-07-12 15:44) [17]

носи не стаптывай


 
Игорь Шевченко ©   (2006-07-12 15:59) [18]

http://www.delphimaster.ru/articles/hooks/index.html почитать


 
GrayFace ©   (2006-07-14 11:56) [19]

Только учесть, что там по меньшей мере 2 ошибки - не правильно обявлены процедуры HookProc и DllProc. Только там названия не совсем такие.


 
Loginov Dmitry ©   (2006-07-14 23:59) [20]

Недавно делал что-то подобное (отлавливал события от клавиатуры, но только для текущего процесса). Получилось примерно следующее:

const
 CBMSG_KEYDOWN = 45078;
 CBMSG_KEYPRESS = 48386;

var
 Hook: HHOOK;
....
function CallBackWndProc(Code, Flag, PData: Integer): Integer; stdcall;
var
 Msg: TCWPStruct;
 AKey: Word;
 AChar: Char;
 ShiftState: TShiftState;
 I: Integer;
begin
 try
   Msg := PCWPStruct(PData)^;

   case Msg.message of    
     CBMSG_KEYDOWN:
       begin
         ShiftState := KeyDataToShiftState(Msg.lParam);
         AKey := Msg.wParam;
         //                              
         ProcKeyDown(SearchDBGridList[I], AKey, ShiftState);
       end;

     CBMSG_KEYPRESS:
       begin
         AChar := Chr(Msg.wParam);
         //                              
         ProcKeyPress(SearchDBGridList[I], AChar);
       end;
   end;
 finally
   Result := CallNextHookEx(Hook, Code, Flag, PData);
 end;
end;
....
initialization
 Hook := SetWindowsHookEx(WH_CALLWNDPROC, CallBackWndProc, 0, GetCurrentThreadId);

finalization
 UnhookWindowsHookEx(Hook);

end.


 
Loginov Dmitry ©   (2006-07-15 00:01) [21]

Перед отправкой поста после "//" были коментарии на русском. Видимо скрипт их похерил...


 
Loginov Dmitry ©   (2006-07-15 00:07) [22]

McSimm, это косяк

см. http://delphimaster.net/view/16-1152907475/


 
GrayFace ©   (2006-07-15 23:05) [23]

> [20]
Криво.
nCode
Specifies whether the hook procedure must process the message. If nCode is HC_ACTION, the hook procedure must process the message. If nCode is less than zero, the hook procedure must pass the message to the CallNextHookEx function without further processing and should return the value returned by CallNextHookEx.
Кроме того, как я понимаю, при nCode>=0 надо вызывать CallNextHookEx, но возвращать не ее результат, а 0.


 
Loginov Dmitry ©   (2006-07-16 13:49) [24]

> Криво.


Не знаю, может и криво. Но все работает, ниче не глючит. Значит, думаю, не совсем уж и криво.


 
GrayFace ©   (2006-07-17 11:08) [25]

Работает в данной ОС и, наверное, при отсутствии других хуков. При других обстоятельствах работоспособность проги под сомнением. "Must" в хелпе просто так бы не появилось.



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

Форум: "Начинающим";
Текущий архив: 2006.08.06;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.53 MB
Время: 0.011 c
2-1153304728
Exile
2006-07-19 14:25
2006.08.06
Length


15-1152482781
Gero
2006-07-10 02:06
2006.08.06
Ругань в тематических конференциях


3-1148995910
Romul
2006-05-30 17:31
2006.08.06
Работа с полем BLOB, очень жду


4-1145337676
DIR3ct0r
2006-04-18 09:21
2006.08.06
Определение сезона (зима/лето) по дате


6-1142968278
qazwsx
2006-03-21 22:11
2006.08.06
Помогите c websnap ом разобраться





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