Thomas Stutz
Global Moderator
Hero Member
    
Offline
Beiträge: 1784

|
 |
« Antworten #1 am: 15.04.2002, 18:37:59 » |
|
Hi,
Verwende ein Programm wie WinSight, um Infos über das fremde Programm zu erhalten oder suche mit EnumChildWindows nach dem Edit-Feld
Vielleicht hilft auch ein früherer Beitrag, den ich mal geschrieben hab:
Ermittele zuerst das Handle des fremden Programms (mit FindWindow) und dann kannst du per FindWindowEx nach den Edit-Feldern suchen.
Mit folgender Funktion kannst Edit-Feldern eines fremden Programms Text schicken. (oder jedem Control, welches die WM_SETTEXT Nachricht behandelt)
hApp : Handle des Fensters, auf welchem die Edit-Felder liegen. EditClassName: Klassenname des Edit-Feldes. (Bei Delphi-Anwendungen meistens TEdit) AText: zu setzender Text EditNr: Nr. des Edit-Feldes ("Reihenfolge wird durch FindWindowEx bestimmt")
[font size=2 face="Courier New"][font color="#000000"]procedure SetEditText(hApp: HWND; EditClassName, AText: string; EditNr: Integer); var i: Word; hEdit: HWND; begin if not IsWindow(hApp) then Exit; for i := 0 to EditNr do hEdit := FindWindowEx(hApp, hEdit, PChar(EditClassName), nil); if IsWindow(hEdit) then SendMessage(hEdit, WM_SETTEXT, 0, Integer(PChar(AText))); end;
procedure TForm1.Button1Click(Sender: TObject); begin [font color="#000080"]// Test: Text an Notepad schicken: [/font]SetEditText(FindWindow('notepad', nil), 'Edit', 'Hallo!', 1); [font color="#000080"]// Test: Text an eigene Anwendung schicken: [/font]SetEditText(Handle, 'TEdit', 'Hallo!', 2); end;
[/font][/font]
|