Seite 1 von 1

.exe Datei über Makro öffnen

Verfasst: So, 01.04.2007 13:34
von felix
Hallo,

ich habe ein Problem. Unzwar möchte ich aus OO Calc heraus eine .exe datei öffnen. Allerdings bin ich blutiger Anfänger im Thema Makros.

Ich hoffe, dass mir jemand helfen kann.

P.S. gibt es irgendwelche Links, Bücher zum Thema Makros in Open office?

Verfasst: So, 01.04.2007 16:57
von Toxitom
Hey Felix,
gibt es irgendwelche Links, Bücher zum Thema Makros in Open office?
Ja, gibt es. Zur Genüge ;-)
Schau dir einfach mal den ersten Thread im Basic-Forum an, dort sind eigentlich alle relevanten Infos gespeichert und abrufbar.

Zum .exe Problem: Der folgende Code ruft eine exe-Datei direkt auf - quasi so, als wenn du den Aufruf auf der Kommandozeile von Windows eingeben würdest. Eventuell musst du natürlich den Pfad mit hinzufügen, wenn das Programm nicht über die Pfad-Varaible erreichbar ist.

Code: Alles auswählen

sub Programm_Aufruf
 dim aArray()
 sURL = "C:\Programme\meinProgramm.exe"
 oService = createUnoService("com.sun.star.system.SystemShellExecute")
 oService.execute(sURL, aArray() ,0)
end sub 
Viele Grüße
Thomas

Verfasst: Do, 05.04.2007 11:08
von felix
Hallo,

ich habs probiert.

Allerdings, wenn ich das Makro ausführe kommt immer die Meldung:

Code: Alles auswählen

Basic-Laufzeitfehler.
Objektvariable nicht belegt.

Code: Alles auswählen

1 sub Programm_Aufruf
 2 dim aArray()
 3 sURL = "C:\Programme\meinProgramm.exe"
 4 oService = createUnoService("com.sun.star.system.SystemShellExecute")
 5 oService.execute(sURL, aArray() ,0)
6 end sub
Dabei ist dann die Zeile 5 makiert(Blau hinterlegt)

Den Pfad habe ich entsprechend erweiter.
Hab ich was falsch gemacht

Verfasst: Do, 05.04.2007 12:27
von Karolus
Hallo felix

Evtl hilft dir die Änderung der dritten Zeile auf:

Code: Alles auswählen

3 sURL = converttourl("C:\Programme\meinProgramm.exe")
Gruß Karo

Verfasst: Do, 05.04.2007 13:03
von Stephan
Hab ich was falsch gemacht

der zweite Parameter in:

Code: Alles auswählen

oService.execute(sURL, aArray() ,0)
stimmt nicht, siehe:
http://api.openoffice.org/docs/common/r ... ecute.html

Verwende:

Code: Alles auswählen

sub Programm_Aufruf 
 sURL = "C:\Programme\meinProgramm.exe" 
 oService = createUnoService("com.sun.star.system.SystemShellExecute") 
 oService.execute(sURL, "" ,0) 
end sub

Gruß
Stephan

Verfasst: Do, 05.04.2007 13:29
von felix
Das funktioniert soweit sehr gut die .exe Datei wird geöffnet.
Jetzt habe ich noch eine Bitte. Die .exe DAtei kann mit Parametern geöffnet werden, was dazu führt, dass verschiedene vorab gespeicherte Einstellungen geladen werden. In der Anleitung des Programms ist das ganze in VBA als Beispiel gegeben.

Beispiel VBA:

Code: Alles auswählen

X=Shell("C:\Programme\Mein_Verzeichnis\Datei.exe -s0 -p5 -f='Standard.smz' -w='C:Programme\Mein_Verzeichnis\'",1)
-w steht für die Hilfsdatein, die gebraucht werden.

Wie muss das dann in Open Office sein damits richtig funktioniert?

Ich hoffe mir kann jemand helfen.

[/code]