FindWindow wszystkie okna

0

Witam
Od jakiegoś czasu nurtuje mnie takie oto pytanie. Jak pobrać uchwyty do wszystkich okien znając nazwę ich klasy. np
FindWindow("Notepad",nil);
zwróci mi uchwyt do pierwszego uruchomionego notatnika, a jak mam otwarte np 3 notatniki to jak pobrać uchwyty dla każdego z osobna??

Wielkie dzięki na zainteresowanie... [diabel]

0
function EnumWindowsProc(wHandle: HWND; lb: TListBox): Bool; stdcall;
  var
  Title, ClassName: array[0..255] of char;
begin
  Result := True;
  GetWindowText(wHandle, Title, 255);
  GetClassName(wHandle, ClassName, 255);
  if ClassName='Notepad' then
     lb.Items.Add(string(Title) +' Hwnd :'+  Inttostr(wHandle) );
//mozna wstawic inne procedury pobierać coś tam itd 

end;

i wywołanie (z listboxem jako komponentem ) :

EnumWindows(@EnumWindowsProc, Integer(Listbox1));
0

Lepiej skorzystać z FindWindowEx

uchwyt := 0;
while(True)
begin
  uchwyt := FindWindowEx(0, uchwyt, 'NazwaKlasy', nil);
  if uchwyt = 0 then Break;

  //tu operujesz uchwytem

end;

1 użytkowników online, w tym zalogowanych: 0, gości: 1