Entwickler-Ecke

Windows API - Text in ein fremdes Feld einfügen


spike0 - Fr 25.11.05 18:11
Titel: Text in ein fremdes Feld einfügen
Wie geht so etwas:
Ich habe z.B. Wordpad offen, und dann öffne ich mein Programm. Ich gebe in ein TMemo-Feld einen Text ein. Nun möchte ich, dass ich z.b. auf Bearbeiten->Einfügen in (hier kommt der Name des Fensters, also Wordpad.exe) klicke, und der Text dann dort eingefügt wird. Am besten wäre es, wenn es auch bei Edit-Feldern funktionieren könnte.

Danke im Vorraus...


SAiBOT - Sa 26.11.05 18:43

Suche in: Delphi-Forum WM_SETTEXT


spike0 - Di 29.11.05 18:41

Also, ich hab es etwas umgeändert: ich will jetzt einen Text aus einem TMemo in das Delphi-Fenster (genauer: in den Delphi-Editor) einfügen
Ich hab provisorisch so etwas versucht, aber noch nicht mal das klappt:

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
var par,chi:thandle;
begin
clipboard.AsText:='Hallo'// Zwischenablage=Hallo, später Memo1.Text
par:=FindWindow(nil,'Unit1.pas'); //Ich finde das Fenster
chi := FindWindowEx(chi, 0'TEditControl'nil); // Suche TEditControl (ich hab mit einem Programm nachgeguckt,
                                                  // welche Klasse dieses Memo-Feld hat, und es ist eben TEditControl)
SendMessage(chi, WM_PASTE, 00); // Text einfügen


Also:
1. Die Suche des Fensters ist äußerst uneffektiv: es kommt selten vor, das dieses fenster eben 'Unit1' als Titel hat. Wie kann man es Besser machen?
2. Wieso funktioniert es insgesammt nicht?