Seite 1 von 1

Prüfung, ob Extension installiert ist

Verfasst: Di, 23.02.2016 10:56
von urbarobe
Hallo,

ich möchte prüfen, ob meine Extension installiert ist. Ich setze LibreOffice 5.1 ein.

Meine jetzige Lösung besteht darin, im Ordner C:\Program Files (x86)\LibreOffice 5\share\uno_packages\cache\uno_packages nach dem Ordner MeineExt.oxt zu suchen. Die Suche gilt, wenn die Extension für alle Benutzer installiert wurde.

Installiere ich meine Extension nur für einen Benutzer, landet die Extension in C:\Users\username\AppData\Roaming\LibreOffice\4\user\uno_packages\cache\uno_packages. Warum das hier in einem Ordner 4 landet, verstehe ich gar nicht.

Gibt es hier eine bessere Lösung, um festzustellen, dass meine Extension installiert ist?

Viele Grüße,
Robert

Re: Prüfung, ob Extension installiert ist

Verfasst: Di, 23.02.2016 11:15
von Stephan
ja, z.B. über:
http://www.openoffice.org/api/docs/comm ... vider.html

Ich weiß nicht ob es einen noch direkteren Weg gibt, aber pragmatisch funktioniert z.B. bereits:

Code: Alles auswählen

aService = GetDefaultContext().getByName("/singletons/com.sun.star.deployment.PackageInformationProvider") 
tmp = aService.getPackageLocation(<Identifier-String Deiner Extension>)
If FileExists(tmp & "/addon.xcu") Then
	'Extension ist installiert
End If
z.B. am Beispiel meiner Extension mottco:

Code: Alles auswählen

aService = GetDefaultContext().getByName("/singletons/com.sun.star.deployment.PackageInformationProvider") 
tmp = aService.getPackageLocation("org.joesch.mottco")
If FileExists(tmp & "/addon.xcu") Then
	Msgbox "mottco ist installiert"
End If
Die Prüfung auf das Vorhandensein von addon.xcu ist natürlich fakultativ, es geht nur darum auf das Vorhandensein irgendeines Files zu prüfen von dem Du weisst das es Teil DEiner Extension ist.


Gruß
Stephan

Re: Prüfung, ob Extension installiert ist

Verfasst: Di, 23.02.2016 14:13
von urbarobe
Danke Stephan.

Funktioniert. Muss nur "addons.xcu" heißen.

Gruß,
Robert