(Gelöst)automatischer Makrostart OOBasic beim Öffnen

Antwort erstellen


BBCode ist eingeschaltet
[img] ist ausgeschaltet
[url] ist eingeschaltet
Smileys sind ausgeschaltet

Die letzten Beiträge des Themas
   

Ansicht erweitern Die letzten Beiträge des Themas: (Gelöst)automatischer Makrostart OOBasic beim Öffnen

Re: (Gelöst)automatischer Makrostart OOBasic beim Öffnen

von Frank66 » So, 16.03.2008 15:25

So... jetzt aber die entgültige Lösung.....

Ich revidiere alle meine vorherigen Aussagen.... (peinlich)

Es war zwar ein loadlibrary drin, aber da hatte ich einen Tipfehler, den ich nicht bemerkte, da zu dem Zeitpunkt noch ein "on error resume next" aktiv war. Interessanterweise scheint es ohne den korrekten loadlibrary zu funktionieren, wenn der Schnellstarter drin ist, was ich mir eigentlich nicht erklären kann. Somit geht sowohl das Starten über mein Zwischendokument, als auch über die CMD mit dem Startparameter.

Danke erstmal allen für die Hilfe.... ich werde sicher in naher Zukunft noch öfters mal meine Problemchen anbringen, bin ja erst am Anfang meines Projektes.

Re: (Gelöst)automatischer Makrostart OOBasic beim Öffnen

von Frank66 » So, 16.03.2008 14:53

hol.sten hat geschrieben:
Frank66 hat geschrieben:Habe auch keinen Startparameter dafür gefunden.
Es gibt durchaus eine Möglichkeit, beim Starten von OpenOffice.org ein Macro ausführen zu lassen:

Code: Alles auswählen

"C:\Programme\OpenOffice.org 2.3\program\soffice.exe" "macro:///Standard.Test.Hinweis(Mein Hinweis)"
Das Makro wird gestartet und ausgeführt, unabhängig davon, ob OOo bereits läuft oder erst gestartet werden muss. In dem obigen Beispiel ist "Standard" der Name der Bibliothek (in meinem Beispiel ist es die Bibliothek Standard unter "My Macros & Dialogs"), "Test" der Name meines Moduls und "Hinweis" der Name meiner Subroutine, die ich wie folgt definiert habe "Sub Hinweis(meldung as string)". Wenn dein Macro keinen Parameter hat, lässt du die Klammern beim Aufrufen des Makros einfach weg.

Wenn du den Startbefehl in ein BAT-Datei packst, kannst du "Mein Hinweis" z. B. auch durch %1 ersetzen, um so den Makro-Aufrufparameter zusätzlich zu parametrisieren:

Code: Alles auswählen

rem OOo mit Macro starten
"C:\Programme\OpenOffice.org 2.3\program\soffice.exe" "macro:///Standard.Test.Hinweis(%1)"

pause
(Getestet mit OOo 2.3.1 und Windows XP)
Hi hol.sten,

danke für die Anleitung der Startparameter, habe es entsprechend umgebaut. Rufe soffice.exe mit "Start" auf, damit die CMD nicht stehen bleibt und wartet. Leider tritt der Fehler mit dem DLG auch dort auf, aber wie schon geschrieben, komme ich mit dem Schnellstarter um das Problem herum.

Re: (Gelöst)automatischer Makrostart OOBasic beim Öffnen

von Frank66 » So, 16.03.2008 14:42

Hi Stefan,

die Bibliothek "MeinProjekt" war geladen, schließlich ist auch die betreffende Code-Zeile auch aus diesem Modul, hatte mir den Rest davor gespart, um nicht unnötig langen Code zu posten.
Stephan hat geschrieben:
Habe inzwischen herausgefunden, dass der Fehler nur auftritt, wenn KEIN Schnellstarter aktiviert ist
Na ob das wirklich stimmt bin ich jetzt nicht sicher

Ursache des Fehlers dürfte jedoch sein das Du den Dialog nicht aus der Standardbibliothek, sondern aus "MeinProjekt" startest und ich keinen Hinweis finde das Du diese Bibliothek vorher explizit laden würdest



Gruß
Stephan

Re: (Gelöst)automatischer Makrostart OOBasic beim Öffnen

von hol.sten » Fr, 14.03.2008 10:30

Frank66 hat geschrieben:Habe auch keinen Startparameter dafür gefunden.
Es gibt durchaus eine Möglichkeit, beim Starten von OpenOffice.org ein Macro ausführen zu lassen:

Code: Alles auswählen

"C:\Programme\OpenOffice.org 2.3\program\soffice.exe" "macro:///Standard.Test.Hinweis(Mein Hinweis)"
Das Makro wird gestartet und ausgeführt, unabhängig davon, ob OOo bereits läuft oder erst gestartet werden muss. In dem obigen Beispiel ist "Standard" der Name der Bibliothek (in meinem Beispiel ist es die Bibliothek Standard unter "My Macros & Dialogs"), "Test" der Name meines Moduls und "Hinweis" der Name meiner Subroutine, die ich wie folgt definiert habe "Sub Hinweis(meldung as string)". Wenn dein Macro keinen Parameter hat, lässt du die Klammern beim Aufrufen des Makros einfach weg.

Wenn du den Startbefehl in ein BAT-Datei packst, kannst du "Mein Hinweis" z. B. auch durch %1 ersetzen, um so den Makro-Aufrufparameter zusätzlich zu parametrisieren:

Code: Alles auswählen

rem OOo mit Macro starten
"C:\Programme\OpenOffice.org 2.3\program\soffice.exe" "macro:///Standard.Test.Hinweis(%1)"

pause
(Getestet mit OOo 2.3.1 und Windows XP)

Re: (Gelöst)automatischer Makrostart OOBasic beim Öffnen

von Stephan » Do, 13.03.2008 15:48

Habe inzwischen herausgefunden, dass der Fehler nur auftritt, wenn KEIN Schnellstarter aktiviert ist
Na ob das wirklich stimmt bin ich jetzt nicht sicher

Ursache des Fehlers dürfte jedoch sein das Du den Dialog nicht aus der Standardbibliothek, sondern aus "MeinProjekt" startest und ich keinen Hinweis finde das Du diese Bibliothek vorher explizit laden würdest



Gruß
Stephan

Re: automatischer Makrostart OOBasic beim Öffnen

von Frank66 » Do, 13.03.2008 14:58

Habe inzwischen herausgefunden, dass der Fehler nur auftritt, wenn KEIN Schnellstarter aktiviert ist, muss als (leider) meinen Kunden den Schnellstarter aufzwingen.

Somit ist das Problem gelöst, oder zumindest eine Lösung die akzeptabel ist... schön ist es nicht.

(Gelöst)automatischer Makrostart OOBasic beim Öffnen

von Frank66 » Mi, 05.03.2008 14:55

Hallo,

ich möchte eine komplexere Anwendung entwickeln und habe dabei das Problem, dass ein OOBasic-Programm von aussen gestartet wird.
Makro soll aber nicht immer laufen, somit scheidet das Event "Programmstart" aus.
Habe auch keinen Startparameter dafür gefunden.
Ich habe mir so beholfen, eine bestimmte Datei zu öffnen, wo das Event "Dokument öffnen" mein Makro startet.
Soweit funktioniert es, aber leider scheint nicht die Initialisierung nicht wie gewünscht zu laufen. Es einen Unterschied macht, ob ich das Programm über mein Dokument starte oder das Makro über "Extras - Makros ausführen" starte.

die folgende Zeile brint beim automatischen Start die Fehlermeldung "Aktion wird nicht unterstützt. Ungültiger Prozeduraufruf"

Code: Alles auswählen

G_DLG = CreateUnoDialog(DialogLibraries.MeinProjekt.Dialog1)
beim manuellen Start funktioniert die Zeile tadellos.

Hat jemand ne Idee, wie ich da weiter komme?

Mir sind folgende Workarounds gekommen, scheitern nur an meiner Unkenntnis von OOBasic :(
- Starten eines Timers im Event "Dokument öffnen" und nach z.B. 100 Millisekunden ein Makro starten
- Autostart nicht über Dokument sondern Startparameter

Danke schon mal in Voraus für eventuelle Lösungsvorschläge

PS: Das Makro und der Dialog ist nicht direkt in dem Dokument wechsel zum Starten verwendet wird, sondern unter "Meine Makros" in einer Bibliothek.

Nach oben