Versionsabfrage LO - AOO
Moderator: Moderatoren
Versionsabfrage LO - AOO
Hallo, mittlerweile gibt es Unterschiede zwischen ApacheOpenOffice und LibreOffice, z.B. kennt LO Borderline2, AOO aber nicht.
Wie kann man die genaue Programmversion abfragen?
Oder wie kann man testen, ob Boderline2 eine gültige Struktur ist?
Die Abfrage soll aus einem Delphi- Programm erfolgen.
Danke
Moritz
Wie kann man die genaue Programmversion abfragen?
Oder wie kann man testen, ob Boderline2 eine gültige Struktur ist?
Die Abfrage soll aus einem Delphi- Programm erfolgen.
Danke
Moritz
-
- ********
- Beiträge: 4330
- Registriert: Di, 22.06.2004 12:02
- Wohnort: 71134 Aidlingen
- Kontaktdaten:
Re: Versionsabfrage LO - AOO
Gruß
Peter
---------------------------------------------------------------------------
Windows 7 Prof. 64-bit SP1, LibreOffice 4.3.6.2 und AOO 4.1.1
Peter
---------------------------------------------------------------------------
Windows 7 Prof. 64-bit SP1, LibreOffice 4.3.6.2 und AOO 4.1.1
Re: Versionsabfrage LO - AOO
Danke, das ist wirklich eine blöde Situation.
Trotzdem muss es eine Möglichkeit geben, mit der man ermitteln kann, ob das Makro unter AOO oder LO und in welcher Version von AOO oder LO läuft. Wenn ich die Abfrage in Starbasic weiß, sollte eine Abfrage auch mit delphi möglich sein.
Vielen Dank
Moritz
Trotzdem muss es eine Möglichkeit geben, mit der man ermitteln kann, ob das Makro unter AOO oder LO und in welcher Version von AOO oder LO läuft. Wenn ich die Abfrage in Starbasic weiß, sollte eine Abfrage auch mit delphi möglich sein.
Vielen Dank
Moritz
-
- ********
- Beiträge: 4330
- Registriert: Di, 22.06.2004 12:02
- Wohnort: 71134 Aidlingen
- Kontaktdaten:
Re: Versionsabfrage LO - AOO
Z. B. hiermit http://www.dannenhoefer.de/faqstarbasic ... tstel.html. Übrigens http://www.dannenhoefer.de/faqstarbasic/index.html ist die erste Anlaufstelle wenn es um StarBasic geht.
Gruß
Peter
---------------------------------------------------------------------------
Windows 7 Prof. 64-bit SP1, LibreOffice 4.3.6.2 und AOO 4.1.1
Peter
---------------------------------------------------------------------------
Windows 7 Prof. 64-bit SP1, LibreOffice 4.3.6.2 und AOO 4.1.1
Re: Versionsabfrage LO - AOO
Ich danke dir, aber so richtig hilft das noch nicht weiter.
Bei mir wird dann 4.1 angezeigt. OK, AOO hat noch keine Version 4.1.
Ich denke, hier werden die Entwickler noch was tun müssen.
Trotzdem vielen Dank für deine Hilfe.
Moritz
Bei mir wird dann 4.1 angezeigt. OK, AOO hat noch keine Version 4.1.
Ich denke, hier werden die Entwickler noch was tun müssen.
Trotzdem vielen Dank für deine Hilfe.
Moritz
-
- ********
- Beiträge: 4330
- Registriert: Di, 22.06.2004 12:02
- Wohnort: 71134 Aidlingen
- Kontaktdaten:
Re: Versionsabfrage LO - AOO
Das glaube ich nun weniger, dass sich daran etwas ändern wird. Stattdessen müsstest Du über Object-Pascal die Registry auslesen.moritz hat geschrieben:Ich denke, hier werden die Entwickler noch was tun müssen.
Gruß
Peter
---------------------------------------------------------------------------
Windows 7 Prof. 64-bit SP1, LibreOffice 4.3.6.2 und AOO 4.1.1
Peter
---------------------------------------------------------------------------
Windows 7 Prof. 64-bit SP1, LibreOffice 4.3.6.2 und AOO 4.1.1
Re: Versionsabfrage LO - AOO
Hallo Moritz,
normalerweise sind die Seiten von Dannenhöfer schon mal nicht schlecht, aber in diesem Falle helfen sie nicht wirklich weiter. Denn das verlinkte Beispielmakro gibt ja nur eine 2-stellige Zahl aus. Und außerdem geht es auch extrem kürzer, bei einer 3-stelligen Zahl.
Das Ergebnis ist dann ein String in der Art von z.B.: 330
Dann gibts noch eine Versionsnummer ausgabe mit diesem Code.
Das könnte dann z.B. so aussehen: 330$9567
Beide Code Beispiele helfen dir aber nicht wirklich weiter um zu erfahren welches Office verwendet wird. Das könntest Du auf Basis des folgenden Code erfahren.
Das Ergebnis könnte dann z.B. bei OOo so aussehen:
OpenOffice.org/3.3$Win32 OpenOffice.org_project/330m20$Build-9567
Und bei LO:
LibreOffice/3.3$Win32 LibreOffice_project/330m19$Build-401
Wie unschwer zu erkennen ist, habe ich das mit OOo 3.3.0 und LO 3.3.0 getestet. Ich habe wohl auch noch andere OOo/LO/AOO-Office, aber die beiden genannten sind momentan als einzige mit xray ausgestattet. Ob Du ein verwertbares Ergebnis in den xxx-4.x.x Versionen bekommst, kann ich dir nicht sagen, da ich diese nicht habe.
Deshalb such hier im Forum mal nach den nützlichen Tools; xray oder mri.
Du könntest dann ja wie folgt vorgehen, um dein Ziel zu erreichen.
1.
Mit GetSolarVersion die Versionsnummer auslesen, und verarbeiten.
2.
Mit dem letzt zitierten Code und ein paar Funktionen zur Stringverarbeitung, das verwendete Office auslesen.
Gruß
balu
normalerweise sind die Seiten von Dannenhöfer schon mal nicht schlecht, aber in diesem Falle helfen sie nicht wirklich weiter. Denn das verlinkte Beispielmakro gibt ja nur eine 2-stellige Zahl aus. Und außerdem geht es auch extrem kürzer, bei einer 3-stelligen Zahl.
Code: Alles auswählen
sub Versionsnummer
print GetSolarVersion
end sub
Dann gibts noch eine Versionsnummer ausgabe mit diesem Code.
Code: Alles auswählen
sub versi
print ThisComponent.BuildId
end sub
Beide Code Beispiele helfen dir aber nicht wirklich weiter um zu erfahren welches Office verwendet wird. Das könntest Du auf Basis des folgenden Code erfahren.
Code: Alles auswählen
sub versi
print ThisComponent.getDocumentInfo.DocumentProperties.Generator
end sub
OpenOffice.org/3.3$Win32 OpenOffice.org_project/330m20$Build-9567
Und bei LO:
LibreOffice/3.3$Win32 LibreOffice_project/330m19$Build-401
Wie unschwer zu erkennen ist, habe ich das mit OOo 3.3.0 und LO 3.3.0 getestet. Ich habe wohl auch noch andere OOo/LO/AOO-Office, aber die beiden genannten sind momentan als einzige mit xray ausgestattet. Ob Du ein verwertbares Ergebnis in den xxx-4.x.x Versionen bekommst, kann ich dir nicht sagen, da ich diese nicht habe.
Deshalb such hier im Forum mal nach den nützlichen Tools; xray oder mri.
Du könntest dann ja wie folgt vorgehen, um dein Ziel zu erreichen.
1.
Mit GetSolarVersion die Versionsnummer auslesen, und verarbeiten.
2.
Mit dem letzt zitierten Code und ein paar Funktionen zur Stringverarbeitung, das verwendete Office auslesen.
Gruß
balu
Sei öfter mal ein Faultier, sag öfter mal "Ach was!" Dann kriegst du keinen Herzinfarkt, und hast ne menge Spass.
wehr rächtschraipfähler findet khan si behalden
wehr rächtschraipfähler findet khan si behalden
Re: Versionsabfrage LO - AOO
Danke Balu,
so gehts. Unter LO 4.1 lautet der Befehl
ThisComponent.GetDocumentProperties.Generator
Mit AOO kann ichs jetzt nicht mehr testen, habs erstmal wieder entfernt.
Trotzdem will ich AOO im Auge behalten, da die Verwaltungen wohl mehr AOO einsetzen als LO.
Bei AOO sind zwar die bunten Desktop- Icons schöner, in LO habe ich aber die Personas und ich denke, LO ist in der Entwicklung etwas weiter. Da kann ich mich aber auch täuschen. Jetzt habe ich ich jedenfalls die Desktop- Icons von LO bei Windows durch Icons von AOO ersetzt und AOO wieder gelöscht.
Vielen Dank
Moritz
so gehts. Unter LO 4.1 lautet der Befehl
ThisComponent.GetDocumentProperties.Generator
Mit AOO kann ichs jetzt nicht mehr testen, habs erstmal wieder entfernt.
Trotzdem will ich AOO im Auge behalten, da die Verwaltungen wohl mehr AOO einsetzen als LO.
Bei AOO sind zwar die bunten Desktop- Icons schöner, in LO habe ich aber die Personas und ich denke, LO ist in der Entwicklung etwas weiter. Da kann ich mich aber auch täuschen. Jetzt habe ich ich jedenfalls die Desktop- Icons von LO bei Windows durch Icons von AOO ersetzt und AOO wieder gelöscht.
Vielen Dank
Moritz
Re: Versionsabfrage LO - AOO
Hallo *,
ich muss diesen Thread noch einmal aufgreifen, weil ich vor dem gleichen Problem stehe (Versionsabfrage), die gezeigten Wege aber bisher nur begrenzt für mich nutzbar sind.
GetSolarVersion() gibt mir die Version des Nutzers mit den ersten beiden Ziffern aus. Eigentlich benötige ich auch die dritte Ziffer, da sich z.B. in LO bei der 4.1.1 die Behandlung des Datumsformates geändert hat. Das kann ich aber noch irgendwie umgehen.
ThisComponent.getDocumentInfo.DocumentProperties.Generator gibt mir das Programm an, mit dem eine bestimmte Datei erstellt wurde. Egal, ob ich das Makro in AOO oder LO starte, egal auch mit welcher Version: Ich sehe immer, dass das Dokument unter LibreOffice 3.3.0 erstellt wurde.
Ich suche also weiterhin danach, wie ich so etwas auslesen kann wie z.B. "AOO400m3" - eben die Information, die unter Hilfe → Info zu ... zu lesen ist.
Gruß
Robert
ich muss diesen Thread noch einmal aufgreifen, weil ich vor dem gleichen Problem stehe (Versionsabfrage), die gezeigten Wege aber bisher nur begrenzt für mich nutzbar sind.
GetSolarVersion() gibt mir die Version des Nutzers mit den ersten beiden Ziffern aus. Eigentlich benötige ich auch die dritte Ziffer, da sich z.B. in LO bei der 4.1.1 die Behandlung des Datumsformates geändert hat. Das kann ich aber noch irgendwie umgehen.
ThisComponent.getDocumentInfo.DocumentProperties.Generator gibt mir das Programm an, mit dem eine bestimmte Datei erstellt wurde. Egal, ob ich das Makro in AOO oder LO starte, egal auch mit welcher Version: Ich sehe immer, dass das Dokument unter LibreOffice 3.3.0 erstellt wurde.
Ich suche also weiterhin danach, wie ich so etwas auslesen kann wie z.B. "AOO400m3" - eben die Information, die unter Hilfe → Info zu ... zu lesen ist.
Gruß
Robert
Re: Versionsabfrage LO - AOO
- miniKasse MMove 1.0.6 Base Videotutorial
- Windows 10: AOO, LO Linux Mint: AOO, LO
Re: Versionsabfrage LO - AOO
Hallo R.,
das hatte ich auch gefunden, aber noch nicht getestet. Unter LO gibt mir das Ganze aber auch nur die ersten beiden Ziffern, jetzt getrennt durch einen Punkt, heraus: 4.1
Die wesentliche Information fehlt weiterhin: AOO oder LO? Jetzt hätte ich allerdings ein Hintertürchen: Ich lasse das entsprechende Makro durchlaufen und sehe nach, ob 3 Ziffern enthalten sind - dann ist's AOO. Aber ob das auf Dauer der richtige Weg ist ...
Gruß
Robert
das hatte ich auch gefunden, aber noch nicht getestet. Unter LO gibt mir das Ganze aber auch nur die ersten beiden Ziffern, jetzt getrennt durch einen Punkt, heraus: 4.1
Die wesentliche Information fehlt weiterhin: AOO oder LO? Jetzt hätte ich allerdings ein Hintertürchen: Ich lasse das entsprechende Makro durchlaufen und sehe nach, ob 3 Ziffern enthalten sind - dann ist's AOO. Aber ob das auf Dauer der richtige Weg ist ...
Gruß
Robert
Re: Versionsabfrage LO - AOO
hallo Robert,
mach mal ein XRAY auf aSettings(hier LO 4.2.0):
Alles da!
Du kannst also
durch
ersetzen um den Wert der Hilfe (About) zu bekommen.
Gruß R
mach mal ein XRAY auf aSettings(hier LO 4.2.0):
Code: Alles auswählen
ooName string "LibreOffice"
ooOpenSourceContext long 1
ooSetupExtension string ".0.4"
ooSetupVersion string "4.2"
ooSetupVersionAboutBox string "4.2.0.4"
ooSetupVersionAboutBoxSuffix string ""
ooVendor string "The Document Foundation"
ooXMLFileFormatName string "OpenOffice.org"
ooXMLFileFormatVersion string "1.0"
Du kannst also
Code: Alles auswählen
OOOVersion = aSettings.getByName("ooSetupVersion")
Code: Alles auswählen
OOOVersion = aSettings.getByName("ooSetupVersionAboutBox")
Gruß R
- miniKasse MMove 1.0.6 Base Videotutorial
- Windows 10: AOO, LO Linux Mint: AOO, LO
Re: Versionsabfrage LO - AOO
Hallo R,
das wars!
Das zeigt mir die Officeversion ausgeschrieben und die genaue Version an.
Vielen Dank.
Robert
das wars!
Code: Alles auswählen
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.ooName + "|" + aSettings.ooSetupVersionAboutBox
END FUNCTION
Vielen Dank.
Robert
Makro Version LO AOO LibreOffice OpenOffice auslesen
Hallo Robert,
einen habe ich noch gefunden, mit
bekommt man zusätzlich die BuildID
einen habe ich noch gefunden, mit
Code: Alles auswählen
Function OOoBuildID() 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/Office"
aSettings = aConfigProvider.createInstanceWithArguments(sAccess, aParams2())
OOoBuildID = aSettings.getByName("LastCompatibilityCheckID")
End Function
Zuletzt geändert von F3K Total am Sa, 08.02.2014 21:48, insgesamt 1-mal geändert.
- miniKasse MMove 1.0.6 Base Videotutorial
- Windows 10: AOO, LO Linux Mint: AOO, LO
Re: Versionsabfrage LO - AOO
Hallo R.,
ich merke jetzt erst richtig, wozu doch XRay taugt. Da hätte ich mir schon früher so manchen Code vereinfachen können.
Mir reicht auf jeden Fall in diesem Zusammenhang die Art des Offices, damit ich LO und AOO unterscheiden kann, und eben die genaue Version, damit solche Sachen wie die unterschiedliche Ansprache des Datumsfeldes berücksichtigt werden können.
Ich nehme an, dass gerade die unterschiedliche Entwicklung des Codes dazu beiträgt, dass noch viele Leute nach einem Thread wie diesem suchen. Leider ist der Thread ja über die Suchfunktion für den Nichtwissenden nicht so leicht zu finden. Gebe ich in der Suchfunktion des Forums "Version" ein, so sagt mir das natürlich: viel zu viele Treffer. Erst als ich GetSolarversion() als Tipp aus der LO-Mailingliste bekam habe ich hier einen Ansatz gefunden, um schließlich einen passenden Thread zu finden.
Gruß
Robert
ich merke jetzt erst richtig, wozu doch XRay taugt. Da hätte ich mir schon früher so manchen Code vereinfachen können.
Mir reicht auf jeden Fall in diesem Zusammenhang die Art des Offices, damit ich LO und AOO unterscheiden kann, und eben die genaue Version, damit solche Sachen wie die unterschiedliche Ansprache des Datumsfeldes berücksichtigt werden können.
Ich nehme an, dass gerade die unterschiedliche Entwicklung des Codes dazu beiträgt, dass noch viele Leute nach einem Thread wie diesem suchen. Leider ist der Thread ja über die Suchfunktion für den Nichtwissenden nicht so leicht zu finden. Gebe ich in der Suchfunktion des Forums "Version" ein, so sagt mir das natürlich: viel zu viele Treffer. Erst als ich GetSolarversion() als Tipp aus der LO-Mailingliste bekam habe ich hier einen Ansatz gefunden, um schließlich einen passenden Thread zu finden.
Gruß
Robert