Hallo,

in meiner Extension "mottco" (http://calc-info.de/makros.htm#mottco) verwende 
ich folgendes Makro zum Aufrufen einer PDF-Datei:

Sub hilfe_aufrufen()
        Dim aService
        Dim pdf_verzeichnis
        
        aService = 
GetDefaultContext().getByName("/singletons/com.sun.star.deployment.PackageInformationProvider")
 
        pdf_verzeichnis = aService.getPackageLocation("org.joesch.mottco") & 
"/mottco/"
        If FileExists(ConvertToUrl(pdf_verzeichnis & "mottco_hilfe.pdf")) Then
                        Dim starten as object
                        starten = 
createUnoService("com.sun.star.system.SystemShellExecute")
                        starten.execute(ConvertToUrl(pdf_verzeichnis & 
"mottco_hilfe.pdf"), "", 0)
                Else
                        MsgBox ("Die Hilfedatei wurde nicht gefunden." 
,16,"Hilfedatei nicht vorhanden")
                        Exit Sub
        End If
End Sub

was bisher (LO bis 6.x) auch immer funktioniert hat.


In LO 7.x (getestet in 7.0.1 und 7.1.0) ergibt "starten.execute..." nun jedoch 
die Fehlermeldung:

"file:///E:/LO_710/LibreOfficePortable/App/libreoffice/program/../../../Data/settings/user/uno_packages/cache/uno_packages/lu7860nw7fts.tmp_/mottco_200.oxt
 konnte nicht gefunden werden [...]"


Augenscheinlich ersetzt "com.sun.star.system.SystemShellExecute" das 
"/../../../" nicht mehr richtig, denn wenn ich testweise den Pfad händisch 
'zurechtfummle' klappt es:

pdf_verzeichnis = 
"file:///E:/LO_710/LibreOfficePortable/Data/settings/user/uno_packages/cache/uno_packages/lu7860nw7fts.tmp_/mottco_200.oxt"
 & "/mottco/"
        If FileExists(ConvertToUrl(pdf_verzeichnis & "mottco_hilfe.pdf")) Then
                        Dim starten as object
                        starten = 
createUnoService("com.sun.star.system.SystemShellExecute")
                        starten.execute(ConvertToUrl(pdf_verzeichnis & 
"mottco_hilfe.pdf"), "", 0)

Wohlgemerkt wird aber das "/../../../" in "FileExists( ..." sehr wohl richtig 
verarbeitet, denn das hier liefert True:

aService = 
GetDefaultContext().getByName("/singletons/com.sun.star.deployment.PackageInformationProvider")
 
pdf_verzeichnis = aService.getPackageLocation("org.joesch.mottco") & "/mottco/"
Msgbox FileExists(ConvertToUrl(pdf_verzeichnis & "mottco_hilfe.pdf"))



Meinungen?




Gruß
Jörg


-- 
Liste abmelden mit E-Mail an: discuss+unsubscr...@de.libreoffice.org
Probleme? 
https://de.libreoffice.org/hilfe-kontakt/mailing-listen/abmeldung-liste/
Tipps zu Listenmails: https://wiki.documentfoundation.org/Netiquette/de
Listenarchiv: https://listarchives.libreoffice.org/de/discuss/
Datenschutzerklärung: https://www.documentfoundation.org/privacy

Antwort per Email an