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

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

Определение Caption окна?


Roman777 ©   (2005-01-19 10:22:00) 

Здравствуйте!
Есть ловушка на окна, возникает проблема при определении Caption окна.
Код функции:

function WndHookProc(Code: integer; wParam: Word; lParam: Longint): Longint; stdcall;
var
 ClassName: array[0..255] of Char;
 WindowText: array[0..255] of Char;
 ClassNameStr, WindowTextStr: string;
 pCBT: PCBTCreateWnd;

begin
 Result := 0;
 if Code >= 0 then
 begin
   case Code of
     HCBT_CREATEWND:
       begin
         pCBT := PCBTCreateWnd(lParam);
         if (pCBT <> nil) and (pCBT^.lpcs <> nil) then
           WindowTextStr := pCBT^.lpcs^.lpszName; { при Create окна, можно определить Caption по этой структуре GetWindowText не подходит }
         //GetWindowText(wParam, WindowText, 255);
         //WindowTextStr := string(CurBasicWindowText);
       end;
   end;
   Result := CallNextHookEx(GlobalData^.SysHook, Code, wParam, lParam);
 end
 else if Code < 0 then
   Result := CallNextHookEx(GlobalData^.SysHook, Code, wParam, lParam);
end;

для окон процесса из которого идет обращение к DLL(где ловушка), все отрабатывает нормально, но для окон из других процессов возвращается ерунда(бессвязный набор символов).
В чем причина?
Заранее всем спасибо.


Eraser   (2005-01-19 13:42:00) [1]

Roman777
Вообще кривовато у тебя это всё оформлено...
В описании этого типа ловушки ясно написано, что wParam "Specifies the handle to the new window".
Обращение к  PCBTCreateWnd вообще убери- ты его не используешь.

CallNextHookEx( GlobalData^.SysHook, Code, wParam, lParam);
-вот это вызывает сомнения...

Ипроверь как ты выделеяешь память под строки.


Наверх

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