Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   OLE-Objekt über Prozess-ID binden (https://www.delphipraxis.net/186168-ole-objekt-ueber-prozess-id-binden.html)

ThoPos 10. Aug 2015 07:02

OLE-Objekt über Prozess-ID binden
 
Hallo zusammen,

ich stehe vor folgenden Problem und sehe (momentan) die Lösung nicht.

Der Anwender hat mehrere Instanzen eines OLE-fähigen Programmes laufen, z.B. winword.exe oder excel.exe. Nun soll mein Programm eine bestimmte Instanz per OLE binden und das geöffnete Dokument ansprechen.

Das Auslesen aller Proess-ID der gesuchten Exe-Dateien ist einfach. Mein Problem ist aber:
Wie binde ich ein Programm per OLE, wenn ich nur dessen Prozess-ID kenne?

Der Weg über die ROT (running object table) geht leider nicht, da die geöffneten Dokumente leider dort nicht eingetragen werden.

Gruß aus Köln
Thomas

mkinzler 10. Aug 2015 07:11

AW: OLE-Objekt über Prozess-ID binden
 
Reicht es nicht die Referenz auf das Dokument zu speichern?

ThoPos 10. Aug 2015 07:18

AW: OLE-Objekt über Prozess-ID binden
 
Wie meinst Du das?

Konkrektes Beispiel: Der Anwender hat die winword.exe mehrfach laufen. In einer dieser Word-Instanzen wurde ein Dokument aus einem Sharepoint geöffnet; aus diesem Grund steht das Dokument auch nicht in der ROT.
Jetzt benötige ich die Winword-Instanz, in der das Sharepoint-Dokument geöffnet ist, in einem OLEVariant. Meine einzige Information ist der Dateiname des WOrd-Dokumentes (kompletter Sharepoint-Link).

Wie kann ich jetzt die richtige Instanz per OLE binden?

Gruß

Bernhard Geyer 10. Aug 2015 07:23

AW: OLE-Objekt über Prozess-ID binden
 
Wieso brauchst du überhaupt dieses geöffnete Dokument per OLE? Was willst du erreichen?

Ich könnte mir vorstellen das der Ansatz das extern per (Delphi-)Exe zu lösen u.U. der falsche (viel zu komplizierte) Ansatz ist. Evtl. ist ein Ansatz mit einem Installierten Word-Plugin einfacher und auch der zielgerichtete Ansatz.

ThoPos 10. Aug 2015 07:35

AW: OLE-Objekt über Prozess-ID binden
 
Es sollen Daten aus unterschiedlichsten Quellen (z.B. am Client angeschlossene Analysengeräte, Oracle- sowie SQL-Datenbanken, andere Office-Programme, etc.) in das geöffnete Word- bzw. Excel-Dokument eingefügt werden. Mit einem VBA-PlugIn bin ich hier an meine Grenzen gestossen; insbesondere da der Oracle-Client nicht auf allen Rechnern installiert ist bzw. sein darf. Also habe ich bereits vor einigen Jahren eine Delphi-Exe erstellt, die die Daten super einfach zwischen den Programmen übermittelt. Dabei gehe ich über die ROT um die Instanzen zu binden.

Jetzt wird leider verstärkt Sharepoint eingesetzt. Die Anwender wollen weiterhin die Daten mit den vertrauten Tools zwischen den Systemen und Dokumenten austauschen. Aus mir unverständlichen Gründen tauchen aber die Sharepoint-Dokumente nicht in der ROT auf. Somit benötige ich hier einen anderne Weg, um die Bindung herzustellen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:03 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz