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

Вниз

Не ставится СВТ хук.   Найти похожие ветки 

 
Solo   (2004-09-03 20:34) [0]

Здравствуйте, возникла следующая проблема:
пытаюсь поставить СВТ хук из DLL, при следующем вызове все виснет и спасает только Reset:

Handle:= SetWindowsHookEx(wh_CBT, CBTProc, HInstance, 0);

Если заменить wh_CBT на к примеру wh_Keyboard, то все изумительно работает. В чем дело не подскажете? Ни каких антивирусов и прочих подозрительных программ не запущено.


 
Cobalt ©   (2004-09-03 21:32) [1]

когда именно виснет?
Не понял...


 
Solo   (2004-09-03 21:58) [2]

Виснет именно на вызове SetWindowsHookEx.


 
kaZaNoVa   (2004-09-03 22:13) [3]

[2] Solo   (03.09.04 21:58)

> на вызове SetWindowsHookEx.

на нём много функций навешано ?


 
Solo   (2004-09-04 00:48) [4]

2 kaZaNoVa
Не понял что заначит "на нём много функций навешано" вызов как вызов, множество раз ставил хуки на клаву и на мышь, без проблем, как только не извращался, а тут ничего не пойму.


 
Cobalt ©   (2004-09-04 02:09) [5]

Мы тоже ничего не понимаем - попробуй привести немного больше кода, касающегося установки хука и самого обработчика, деклараций и проч.
Неплохим вариантом - выложить архив с исходниками в инет, например на http://www.webfile.ru/


 
Sur   (2004-09-05 19:38) [6]

Handle:= SetWindowsHookEx(wh_CBT, CBTProc, HInstance, 0);
У меня ано выглядет так:
Handle:= SetWindowsHookEx(wh_CBT, CBTProc, hDLL, 0);


 
Solo   (2004-09-05 22:57) [7]

2 Sur: что такое hDLL?

Вот выложил простенький тестовый проектик webfile.ru/49842. Там СВТ-хук должен ставиться для работы в пределах одного процесса. Но вот не ставиться зараза - все виснет на вызове функции SetWindowsHookEx. Подскажите что не так.


 
Digitman ©   (2004-09-06 09:30) [8]


> Там СВТ-хук должен ставиться для работы в пределах одного
> процесса


"там"-то может и "должен", но "здесь" ты пытаешься поставить глоб.хук, т.е. во всех GUI-процессах !

Приведи весь код, касаемый идентификатора CBTProc - где и как определен, реализация этой ф-ции и т.д. и т.п.


 
kaZaNoVa   (2004-09-06 09:50) [9]

[7] Solo   (05.09.04 22:57)
> тестовый проектик webfile.ru/49842.

у меня 98 винда и при попытке запустить всё зависло ....
зы- у тя разрешение экрана 800*600  ?


 
Digitman ©   (2004-09-06 10:12) [10]

CBTHandle:=SetWindowsHookEx(wh_CBT, @CBTFunc, HInstance, 0);

procedure UnsetCBTHook;StdCall;
begin                                
//  CloseHandle(CBTHandle); // ??????
  UnhookWindowsHook(CBTHandle); //!!
end;

...
 Result:=CallNextHookEx(CBTHandle, Code, wParam, lParam); //CBTHandle д.б. глобально доступной переменной !!


 
Sur   (2004-09-06 15:36) [11]


> Solo   (05.09.04 22:57) [7]
> 2 Sur: что такое hDLL?

hDLL := LoadLibrary("Hook.dll");
hProc := GetProcAddress(hDLL,"CBTProc");
hHook1 := SetWindowsHookEx(WH_CBT,hProc,hDLL,0);



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

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

Наверх




Память: 0.49 MB
Время: 0.054 c
1-1095800244
Newad
2004-09-22 00:57
2004.10.10
dll dynamik link


1-1095976334
Ezhik
2004-09-24 01:52
2004.10.10
Поиск файлов


3-1095263457
Surrender
2004-09-15 19:50
2004.10.10
DateTime в формате String в базе Access


14-1095968863
123
2004-09-23 23:47
2004.10.10
Ну это вообще - фильмы тормозят!


3-1094676696
PSN
2004-09-09 00:51
2004.10.10
UPPER и COLLATE