Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Почему виснет FindWindow(nil, 'dialog window') в функции ловушки?


Alex_PP ©   (2006-03-22 23:09:00) 

длл устанавливает ловушку в потоке, поток загружает себе эту длл. Всё хорошо и FindWindow(nil, 'dialog window') выполняется как надо, но после выполнения в приложении
           DestroyWindow(wnd);
           SendMessage(DTwnd, LVM_GETITEMCOUNT, 0, 0);
(процедура окна DTwnd в том же потоке, что и процедура wnd)

длл(в чужом потоке) виснет на строке с FindWindow(nil, 'dialog window');
Что я не так делаю?


Alex_PP   (2006-03-23 22:54:00) [1]

Вобщем видимо FW действительно не причём. В самом начале функции ловушки поставил отображать флаг в реестре(так я отлаживаю), он после
          SendMessage(DTwnd, LVM_GETITEMCOUNT, 0, 0);
не появляется. Не пойму в чём дело. Проверил DTwnd из того же потока. Может дело в определении функции ловушки? Её определяю так:

function DllHookProc(code: Integer; wParam: UINT; lParam: PMSG): LRESULT; stdcall;

следующую ловушку вызываю так:
 if code<0 then
   Result:=CallNextHookEx(hhk, code, wParam, Integer(lParam));


GanibalLector   (2006-03-23 00:55:00) [2]

FindWindow - функция. Соответственно :

Return Values

If the function succeeds, the return value is the handle to the window that has the specified class name and window name.
If the function fails, the return value is NULL. To get extended error information, call GetLastError.


Piter   (2006-03-23 00:19:00) [3]

Alex_PP ©   (22.03.06 23:09)
Что я не так делаю?


коряво описываешь свою проблему.

В любом случае, практически невероятно, что FindWindow зависает. А вот как ты определил, что зависает именно FW - хз...


Наверх

Титульная страница Поиск, карта сайта Написать письмо