Форум: "WinAPI";
Текущий архив: 2004.10.10;
Скачать: [xml.tar.bz2];
ВнизНе ставится СВТ хук. Найти похожие ветки
← →
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 вся ветка
Форум: "WinAPI";
Текущий архив: 2004.10.10;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.04 c