{function FindWindowHandle (HuntFor: string): HWnd;} {----------------------------------------------------------------} { Ищем родительское окно с заголовком, содержащим строку HuntFor.} { Возвращаем дескриптор окна, или 0, если ничего не найдено. } {----------------------------------------------------------------}
{ Приведенный ниже код является логической частью } { FindWindowHandle, но расположен здесь, поскольку } { реальная функция FindWindowHandle, реализованная } { Borland, не допускает вложенных функций возврата. } {-----------------------------------------------------} type PHuntRec = ^THuntRec; THuntRec = record HuntingFor: string; WindowFound: HWnd; end;
function EnumWindowsFunc (WindowHandle: HWnd; lParam: Longint): WordBool; export; {-----------------------------------------------------} { Callback-функция, используемая FindWindowHandle. } {-----------------------------------------------------} var ATitle: array[0..255] of Char; begin GetWindowText(WindowHandle, PChar(@ATitle), 255); if StrContains(StrPas(PChar(@ATitle)), PHuntRec(lParam)^.HuntingFor, CaseInsensitive) then begin PHuntRec(lParam)^.WindowFound := WindowHandle; EnumWindowsFunc := false; {останавливаем просмотр} end else EnumWindowsFunc := true {продолжаем просмотр} end; {EnumWindowsFunc}