Ole/com

mikky

Grünschnabel
Hallo!

ist es möglich von Java aus auf OLE Objekte zuzugreifen und auf diesen bereitgestellte Funktionen auszuführen?

Ich habe dazu bis jetzt leider nichts gefunden, aussser wie man z.B. Word in einem Fenster laufen lassen kann.

wäre toll wenn mir jemand einen tipp geben könnte.

danke
 
Hallo!

Na klar geht das beispielsweise mit SWT (wenn du Word embedded anzeugen willst) oder mit Jacob (wenn du word nur automatisieren willst): http://danadler.com/jacob/

Hier mal ein Beispiel für ein in eine SWT Anwendung eingebettete Word Anwendung.
(Für das Beipsiel muss die .doc-Datei noch vorher angelegt werden)
Java:
/**
 * 
 */
package de.tutorials;

import java.io.File;

import org.eclipse.swt.SWT;
import org.eclipse.swt.layout.FillLayout;
import org.eclipse.swt.ole.win32.OLE;
import org.eclipse.swt.ole.win32.OleAutomation;
import org.eclipse.swt.ole.win32.OleClientSite;
import org.eclipse.swt.ole.win32.OleFrame;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Shell;

/**
 * @author Tom
 * 
 */
public class SWTWordOLEIntegrationExample {

    /**
     * @param args
     */
    public static void main(String[] args) {
        Display display = new Display();
        Shell shell = new Shell(display);

        shell.setText("SWTWordOLEIntegrationExample");

        shell.setLayout(new FillLayout());

        OleFrame oleFrame = new OleFrame(shell, SWT.NONE);
        OleClientSite oleClientSite = new OleClientSite(oleFrame, SWT.NONE, OLE
                .findProgramID(".doc"), new File("c:/dok1.doc"));
        oleClientSite.doVerb(OLE.OLEIVERB_SHOW);
        OleAutomation oleAutomation = new OleAutomation(oleClientSite);

        shell.open();

        while (!shell.isDisposed()) {
            if (!display.readAndDispatch()) {
                display.sleep();
            }
        }
        oleClientSite.deactivateInPlaceClient();
    }
}

Hier noch ein Beispiel zum Anzeigen eines PDF Dokuments:
http://www.tutorials.de/forum/java/...-und-anzeigen.html?highlight=OleFrame+Acrobat

Hier gibts noch mehr dazu:
http://www.eclipse.org/articles/Article-ActivexSupportInSwt/index.html

Btw. Videos kann man auch mti SWT abspielen lassen:
http://www.tutorials.de/forum/swing...deo-mit-swt-abspielen.html?highlight=OleFrame

Gruß Tom
 
hallo & danke schon mal für die antwort!

ja, die variante mit word u.ä. habe ich schon gefunden und das klappt bei mir auch.

allerdings will ich auf ein OLE Objekt zugreifen das keine grafische oberfläche anbietet. vielleicht kennt das ja sogar jemand hier: Offline Explorer Enterprise, ist ein mega(!) webcrawler.

das OEE Objekt einfach wie in dem Word beispiel zu starten klappt nicht.
das Objekt bietet keinerlei gui an, sondern nur funktionen wie downloads hinzufügen, starten, löschen usw.

problem ist das auch von dem autor des programs keine vernünftigen java tips zu bekommen sind. in der hilfe sind nur ein paar delphi code beispiele.

für jacob hab ich noch keine wirklichen beispiele gefunden - aber die seite von dir kannte ich noch nicht - ich schau da mal auch rein.

wenn jemand vielleihct den Offline Explorer sogar kennt wären tipps super
 
Hallo!

allerdings will ich auf ein OLE Objekt zugreifen das keine grafische oberfläche anbietet. vielleicht kennt das ja sogar jemand hier: Offline Explorer Enterprise, ist ein mega(!) webcrawler.
Du kannst mit SWT auch OLE Komponenten Automatisieren welche keine GUI haben desweiteren funktioniert Jacob bei sowas auch ganz gut.


Gruß Tom
 
Zurück