Einzelnen Beitrag anzeigen

Ykcim

Registriert seit: 29. Dez 2006
Ort: NRW
804 Beiträge
 
Delphi 10.4 Sydney
 
#19

AW: ClassName von Edit

  Alt 5. Mär 2021, 22:03
Ullala, dass ich noch nicht mein Thema!

Erst einmal vielen Dank und auch für das Beispiel! Das habe ich wirklich gebraucht...

Ich habe jetzt die ersten Aktionen hinbekommen und sie laufen auch auf einem anderen Rechner...

Ich habe es jetzt erst einmal so gelöst - mit Sicherheit noch nicht der Weisheit letzter Schluss...

Delphi-Quellcode:
function EnumChildProc(AHandle: THandle; Rows: TRows): BOOL; stdcall;
var
   buffer: array[0..255] of Char;
   caption: array[0..255] of Char;
   I: integer;
begin
   while (Rows[0,I]<>'') or (I=Length(Rows[0]) -0) do begin
      INC(I);
   end;
   Result := True;
   GetClassName(AHandle, buffer, SizeOf(buffer)-1);
   SendMessage(AHandle, WM_GETTEXT, 256, Integer(@caption));
   Rows[0,I] := IntToStr(AHandle);
   Rows[1,I] := string(buffer);
   Rows[2,I] := Caption;
end;
Delphi-Quellcode:
procedure TTMSForm2.Write_Empfaenger(Rows: TRows);
var wnd_temp: HWND;
      I: integer;
begin
   for I := 0 to Length(Rows[0]) -1 do begin
      wnd_temp:=StrToInt(Rows[0,I]);
      case I of
      0: SendMessage(wnd_temp,WM_SETTEXT,0,Integer(Pchar(Edit_HNr_E.Text))); //HNr.
    //1: // TButton
      2: SendMessage(wnd_temp,WM_SETTEXT,0,Integer(Pchar(Edit_Land_E.Text))); //Land
      3: SendMessage(wnd_temp,WM_SETTEXT,0,Integer(Pchar(Edit_Ort_E.Text))); //Ort
      4: SendMessage(wnd_temp,WM_SETTEXT,0,Integer(Pchar(Edit_PLZ_E.Text))); //PLZ
      5: SendMessage(wnd_temp,WM_SETTEXT,0,Integer(Pchar(Edit_Strasse_E.Text))); //Strasse
      6: SendMessage(wnd_temp,WM_SETTEXT,0,Integer(Pchar(Edit_Name_E.Text))); //Nachname
      7: SendMessage(wnd_temp,WM_SETTEXT,0,Integer(Pchar(Edit_Firma_E.Text))); //Firma
      8: SendMessage(wnd_temp,WM_SETTEXT,0,Integer(Pchar(Edit_Vorname_E.Text))); //Vorname
      end;
   end;
end;
Delphi-Quellcode:
procedure TTMSForm2.AdvGlowButton2Click(Sender: TObject);
var
  fwnd: THandle;
  wnd: HWND;
  CName: array [0..255] of Char;
  Rows: TRows;
begin

   fwnd := FindWindow(nil, 'AndereApp');
   GetClassName(fWND, CName, 256);
   wnd := FindWindowEx(fwnd, 0, CName, nil);
   wnd := FindWindowEx(wnd, 0, CName, nil);
   wnd := FindWindowEx(wnd, 0, CName, 'Empfänger');
   SetLength(Rows,3,9);
   EnumChildWindows(wnd, @EnumChildProc, Integer(Rows));

   Write_Empfaenger(Rows);
end;
Ich guck mal, wie weit ich jetzt komme. Muss noch Menü's, ComboBoxen und Tabellen abgreifen.

Vielen Dank!!!

Patrick
Patrick
  Mit Zitat antworten Zitat