Показать сообщение отдельно
  #1  
Старый 05.12.2009, 19:27
Ekklesiast Ekklesiast вне форума
Прохожий
 
Регистрация: 01.12.2009
Сообщения: 5
Репутация: 10
По умолчанию Не могу найти дочерние окна

Не могу найти дочерние окна
вообщем например у Калькулятора мне надо найти дочерние окна (а не кнопки и.т.п)
Для примера вызвал доч. окно у Калькулятора: Справка -> О програме

ищу след. образом

Код:
function EnumChildProc(Wd: HWND; lParam: LongInt): boolean; stdcall;
var
  Nm: Array [0 .. 255] of Char; // буфер для имени
begin
  GetWindowText(Wd, Nm, 255); // считываем  текст заголовка окна
  if (String(Nm) <> '') then
  begin
    sN := String(Nm);
    Form1.ListBox1.Items.Add(sN);
  end;
  EnumChildProc := TRUE; // продолжать искать окна…
end;

procedure TForm1.Button1Click(Sender: TObject);
var
  h: HWND;
begin
  h := FindWindow(nil, PChAR('Калькулятор')); // извлекает имя окна которого соответствуют заданным строкам
  if h > 0 then
    EnumChildWindows(h, @EnumChildProc, 0);
end;

p.s sN - глобальная переменная
Находит кнопки и.т.п, а доч. окна не видит, подскажите где я не прав
Заранее огромное спасибо
Ответить с цитированием