Einzelnen Beitrag anzeigen

Benutzerbild von Dani
Dani

Registriert seit: 19. Jan 2003
732 Beiträge
 
Turbo Delphi für Win32
 
#6

Re: Text an Eingabezeile schicken

  Alt 18. Nov 2004, 20:31
Das geht wirklich einfach mit EnumChildWindows. Der Code könnte z.B. so aussehen:

Delphi-Quellcode:
//Diese funktion wird so lange von EnumChildWindows aufgerufen, bis sie FALSE zurück gibt.
function EnumTargetWindow(WindowHandle: HWND; lParam1: lParam): Boolean; stdcall;
var buf: Pchar;
    dwSize: DWORD;
    chRect: TRect;
begin
 Result := True; //Alle Fenster werden aufgelistet
 dwSize := 265;
 //Speicher für Klassenname reservieren
 buf := AllocMem(dwSize);
 //Klassenname des gefundenen Fensters speichern
 If GetClassName(WindowHandle, buf, dwSize)<>0 then
 //Wenn das Control ein "Static" ist...
 If buf='Staticthen
  begin
   //Dessen Koordinaten in chRect speichern
   GetWindowRect(WindowHandle, chRect);
   ///... irgendetwas mit den ausgelesenen Daten tun
  end;
 //Allozierten Speicher freigeben
 FreeMem(buf, dwSize);
end;


procedure foo;
var TargetWnd: HWND;
begin
 TargetWnd := FindWindow('TForm1', nil);
 If TargetWnd <> 0 then
  begin
   EnumChildWindows(TargetWnd, @EnumTargetWindow, lParam(0));
  end;
end;
Dani H.
  Mit Zitat antworten Zitat