Проблема с EnumChildWindows
|
От: |
Tone
|
|
| Дата: | 25.05.04 16:17 |
|
Оценка: |
|
У меня такой код:
EnumChildProc proc hwndChild:DWORD,lParam1:DWORD
call GetClassNameA,hwndChild,offset ClassNameChild,128
call CharUpperA,offset ClassNameChild
call lstrlenA,offset ClassNameChild
mov ecx,eax
lea eax,ClassNameChild
call strstr,offset Shell_TrayWnd,offset ClassNameChild
test eax,eax ;Это панель задач?
jz NoShell_TrayWnd
;Получим имя задачи
call GetWindowTextLengthA,hwndChild
call GetWindowTextA,hwndChild,offset NameTask,eax
;ВОТ ЗДЕСЬ ВСЯ ЗАГВОЗДКА
call lstrcatA,offset ListTask,offset NameTask
call lstrcatA,offset ListTask,offset Caretka
inc CountTask
NoShell_TrayWnd:
mov eax,1
ret
EnumChildProc endp
CBTProc proc nCode:DWORD,hWndParent:DWORD,lParam2:DWORD
cmp nCode,4
jne net1
call EnumChildWindows,hWndParent,offset EnumChildProc,0
; далее спокойно даем окну удалиться.
net1:
call CallNextHookEx,hHook,nCode,hWndParent,lParam2
xor eax,eax
ret
CBTProc endp
start:
...
;Установим хук
call SetWindowsHookExA,5,offset CBTProc,0,0
mov hHook,eax
...
...
;Снимен хук
call UnhookWindowsHookEx,hHook
...
;В итоге вместо спика здесь выводится пустое сообщение ????
call MessageBoxA,0,offset ListTask,offset CaptionListText,0
start end
и после его выполнения нет ожидаемого результата. Строка ListTask пустая. Почему? Может кто сталкивался с такой проблемой.
Пока на собственное сообщение не было ответов, его можно удалить.