Показать сообщение отдельно
  #3  
Старый 15.04.2009, 21:46
Аватар для Karsh
Karsh Karsh вне форума
Активный
 
Регистрация: 22.09.2007
Адрес: SPb
Сообщения: 228
Версия Delphi: 7, 2009, XE2
Репутация: 70
По умолчанию

вот код проги, которая выводит в мемо имена всех найденых окон:
Код:
procedure GetWinsNames(var outName: string);
var
  Wnd: hWnd;
  buff: array [0..127] of Char;
begin
  outName:= '';
  Wnd:= GetWindow(Form1.Handle, gw_HWndFirst);
  while Wnd <> 0 do
  begin
    ZeroMemory(@buff, SizeOf(buff));
    if (Wnd<>Application.Handle) and
      (IsWindowVisible(Wnd){or checkbox1.checked}) and   //checkbox1.checked - показывать скрытые окна
      ((GetWindow(Wnd, gw_Owner)=0) {or checkbox2.checked}) and //checkbox2.checked - показывать остальные окна
      (GetWindowText(Wnd, buff, SizeOf(buff))<>0) then
    begin
      outName:= outName + buff + #13#10;
      //тут можно поколдавать с Wnd
    end;
    Wnd:= GetWindow(Wnd, gw_hWndNext);
  end;
end;

procedure TForm1.Button1Click(Sender: TObject);
var
  s: string;
begin
  GetWinsNames(s);
  Memo1.Text:= s;
end;
В строчке "//тут можно поколдавать с Wnd" можно поработать с окном (закрыть, свернуть и т.п.)
__________________
Начинающий программист уверен, что в 1 килобайте 1000 байт.
Законченный программист уверен, что в 1 километре 1024 метра.
Ответить с цитированием