[gelöst] Libre vs OpenOffice - beim start unterscheiden

Programmierung unter AOO/LO (StarBasic, Python, Java, ...)

Moderator: Moderatoren

der_Zerstreute
***
Beiträge: 62
Registriert: Do, 01.05.2008 11:33

[gelöst] Libre vs OpenOffice - beim start unterscheiden

Beitrag von der_Zerstreute »

Hallo Leute,

Ich bin in unserem Netzwerk gerade über ein Problem gestolpert.
Vor geraumer Zeit habe ich ein Formular mit einem Makro ausgestattet welches Daten in einem Fenster abfragt , einige Daten aus den Benutzerdaten von OO läd und alles zusammen in das Formular einträgt.

Nun kommt leider auf einzelnen Rechner LO zum Einsatz. Die veränderte Befehlsstruktur von LO sorgt nun zu abstürzen des Makros durch unbekannte Befehle.
Meine Frage an euch ist jetzt, ob einer von euch weiß wie ich beim Start von LO/OO erkennen kann welches Office gerade ausgeführt wird.
Auf die Schnelle habe ich dazu nichts im Internet nichts gefunden.

Wäre da sehr Dankbar für jeden Tip !
Zuletzt geändert von der_Zerstreute am Mi, 01.06.2016 12:40, insgesamt 1-mal geändert.
Stephan
********
Beiträge: 12369
Registriert: Mi, 30.06.2004 19:36
Wohnort: nahe Berlin

Re: Libre vs OpenOffice - beim start unterscheiden

Beitrag von Stephan »

schau Dir diesen Thread an:
viewtopic.php?t=62130

nicht alle dortigen Eigenschaften (siehe weiter unten im Thread) sind für alle alten Programmversionen verfügbar, aber z.B. "Vendor" funktioniert mindestens bis zurück OOo 3.3.0 (und natürlich für alle neueren OO/LO-Versionen.

Damit geht:

Code: Alles auswählen

Sub Main
ov = OfficeVersion()
Select Case ov
	Case "Oracle", "Apache Software Foundation"
		Msgbox "OO erkannt"
	Case "The Document Foundation"
		Msgbox "LO erkannt"
	Case Else
		'Msgbox ov
End Select
End Sub

FUNCTION OfficeVersion() AS STRING
  Dim aSettings, aConfigProvider
  Dim aParams2(0) As new com.sun.star.beans.PropertyValue
  Dim sProvider$, sAccess$
  sProvider = "com.sun.star.configuration.ConfigurationProvider"
  sAccess   = "com.sun.star.configuration.ConfigurationAccess"
  aConfigProvider = createUnoService(sProvider)
  aParams2(0).Name = "nodepath"
  aParams2(0).Value = "/org.openoffice.Setup/Product"
  aSettings = aConfigProvider.createInstanceWithArguments(sAccess, aParams2())
  OfficeVersion = aSettings.ooVendor
END FUNCTION
Wobei die Prüfung noch einfacher sein kann da Du ja auch nur auf "" prüfen kannst und weisst wenn das nicht der "Vendor" ist das aktielle Programm OpenOffice.


Gruß
Stephan
Dateianhänge
OpenOffice-LibreOffice-unterscheiden.ods
(9.8 KiB) 136-mal heruntergeladen
der_Zerstreute
***
Beiträge: 62
Registriert: Do, 01.05.2008 11:33

Re: [gelöst] Libre vs OpenOffice - beim start unterscheiden

Beitrag von der_Zerstreute »

ah .. ok .. Super !

nun muß ich nur noch rausbekommen durch was ich die nicht mehr funktionierenden Befehle ersetzen muß ;)

Danke
Antworten