Hallo zusammen,
ich stehe vor folgendem Problem:
Ich möchte aus meiner Anwendung einen Text per Drag&Drop nach MS Word ziehen und anschließend den Text in Word als Textmarke festlegen. Für die D&D-Funktionalität benutze ich die Komponenten von melander.dk
Bisher sieht mein Code so aus:
Delphi-Quellcode:
procedure TFrmOffice.DTSOfficeAfterDrop(Sender: TObject; DragResult: TDragResult; Optimized: Boolean);
var
app, doc: OLEVariant
begin
app := GetActiveOLEObject('Word.Application');
doc := app.ActiveDocument;
doc.bookmarks.add(_Text, app.selection.range);
doc := UnAssigned;
app := UnAssigned;
end;
Funktioniert eigentlich super ... solange der Anwender nicht die WINWORD.EXE mehrfach laufen hat. Denn dann erhielt ich bei meinen Tests in 1 von ca. 20 Fällen mit GetActiveOLEObject die falsche WINWORD-Instanz.
Kennt einer von Euch einen Trick, wie ich über das
Handle (mittels GetForegroundWindow erhalten) das richtige
OLE-Object verbinden kann? Natürlich bin ich auch für andere Lösungsansätze offen.
Gruß aus Köln
Thomas