function EnumChildren(hwnd: HWND; lParam: LPARAM): BOOL; stdcall;
const
SearchedClass = '#32770';
var
ClassName: array[0..259] of Char;
begin
Result := True;
GetClassName(hwnd, ClassName, Length(ClassName));
if ClassName = SearchedClass then
TStrings(lParam).Add(IntTostr(hwnd));
end;
procedure Button2Click(Sender: TObject);
var
Hauptwnd, Childwnd, EditWnD: HWND;
i: Integer;
begin
Hauptwnd:=0;
Childwnd:=0;
EditWND := 0;
Memo1.Clear;
Memo2.Clear;
// Erst suchen wir alle
Handle die es gibt
EnumChildWindows(Childwnd, @EnumChildren, UINT_PTR(Memo1.Lines));
// Jetzt schauen wir auf welchem das Label liegt woran man festmachen kann das es das richtige Fenster ist
for I := 0 to Memo1.Lines.Count -1 do begin
Childwnd := FindWindowEx(strtoint(Memo1.Lines[i]),0,'Static','Inhalt des Labels');
if Childwnd <> 0 then begin
Memo2.Lines.Add(Memo1.Lines[i]);
Childwnd := 0;
break;
end;
end;
// Wenn wir jetzt ein Fenster gefunden haben, suchen wir auf dem Fenster nach dem Edit
if memo2.Lines.Count > 0 then begin
EditWnd := FindWindowEx(strtoint(Memo2.Lines[0]),0,'Edit',0);
end;
// Wenn wir was gefunden haben schreiben wir den Text rein
if Editwnd <> 0 then
begin
SendMessage(Editwnd,WM_Settext,0,integer(pchar('12')));
end;
end;