Hallo,
ich schreibe ein kleines C++-Programm, mit dessen Hilfe ich oo fernsteuern
möchte.
Hierzu gehe ich folgendermassen vor:
0. installiere ich oo Version 2.0.2 (nach Rechner-Neustart sehe ich den
Schnellstarter in der
Taskleiste)
1. in einem batch-File starte ich den openoffice
"StarOffice.ServiceManager":
Aufruf:
start soffice.exe "-accept=socket
host=localhost,port=1111;urp;StarOffice.ServiceManager -headless -invisible"
2. dann versuche ich es, in dem C++-Programm zu dem oo zu connecten:
Reference<XComponentContext> rComponentContext =
::cppu::defaultBootstrap_InitialComponentContext();
Reference<XMultiComponentFactory> rServiceManager =
rComponentContext->getServiceManager();
Reference<XInterface> rInstance =
rServiceManager->createInstanceWithContext(OUString::createFromAscii("com.sun.star.bridge.UnoUrlResolver"
),rComponentContext);
Reference<XUnoUrlResolver> rResolver(rInstance, UNO_QUERY);
rInstance = rResolver->resolve(
OUString::createFromAscii("uno:socket,host=localhost,port=8100;urp;StarOffice.ServiceManager"));
Reference<XMultiServiceFactory> rOfficeServiceManager (rInstance,
UNO_QUERY);
Leider
1. schlägt schon der erste Schritt fehl:
Nach Aufruf der batch-Datei springt die CPU-Nutzung auf 100%
(TaskManager)
Der cmd-Aufruf "netstat -n" teilt mit, dass das Port 111 nicht belegt
ist
Nach Abschiessen von soffice.bin ist die CPU-Nutzung wieder normal
Nach einem zweiten Start der batch-Datei passiert das Gleiche und die
oo-Anwendung
wird auch sichtbar
2. beim Aufruf des C++-Programms tritt die Fehlermeldung
"(WSAECONNREFUSED, Connection refused)"
auf (nicht überraschend, da die batch-Datei nicht funktioniert hat)
Meine Fragestellungen zu dieser Situation:
1. wie kann ich die batch-Datei so formulieren, dass der beschriebene Fehler
nicht auftritt?
(der Fehler ist ziemlich zuverlässig, auf mehreren Rechnern
(winME/win2k/winxp) probiert)
("127.0.0.1" statt "localhost" im Aufruf wirkt genauso)
2. ist der C++-Code fürs connect prinzipiell richtig?
(Grund der Frage: ich konnte noch nie erfolgreiche Tests durchführen)
3. Gibt es keine andere Möglichkeit, oo-Dokumente aus einer Anwendung aus
mit oo zu öffnen?
(z.B. ein ActiveX-Object "oo-Control" auf der dialogbasierten Anwendung
zu erstellen und hierein ein oo-Dokument zu öffnen...!?)
3. wenn ich es schaffen würde, den "StarOffice.ServiceManager" mit dem
batch-File zu starten, wie
kann ich ihn später zum Beenden bewegen?
4. das C++-Programm wurde mit den OO-SDK 2.0.2 header Files kompiliert.
- Dies funktioniert unter Visual Studio .NET 2003 mit kleinen
Anpassungen
- Dies funktioniert nicht unter Visual Studio 6.0, da die header-Files aus
dem SDK
Compilier-Fehler werfen (Standard-MFC-Projekt; dialogbasierte
Anwendung)
Stimmt meine Feststellung oder habe ich beim Einbinden der SDK unter VC6
einen Fehler gemacht?
Für Hinweise, die meine Fehler korrigieren könnten, wäre ich dankbar!
Gruss
George
_________________________________________________________________
FREE pop-up blocking with the new MSN Toolbar - get it now!
http://toolbar.msn.click-url.com/go/onm00200415ave/direct/01/
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]