Registriert seit: 19. Jan 2003
732 Beiträge
Turbo Delphi für Win32
|
Re: Text an Eingabezeile schicken
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='Static' then
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.
|
|
Zitat
|