Bonjour,
Je cherche le moyen pour détecter si la version installée de LO est 32 bits ou 64 bits (API LibreOffice ou Windows).
D'avance merci.
Didier Dorange-Pattoret
Bonjour,
Je cherche le moyen pour détecter si la version installée de LO est 32 bits ou 64 bits (API LibreOffice ou Windows).
D'avance merci.
Didier Dorange-Pattoret
Bonjour de CAHORS et joyeuses fêtes à tous .
Je me pose la même question et je profite de l'occasion.
Merci à tous pour votre collaboration
Raoul
Bonjour,
Bonjour,
Je cherche le moyen pour détecter si la version installée de LO est 32 bits ou 64 bits (API LibreOffice ou Windows).
D'avance merci.
Didier Dorange-Pattoret
Pour Windows, c'est indiqué dans Panneau de configuration > Système.
Dans le Gestionnaire de tâches de Windows les noms des processus 32bits en exécution sont suivis de la mention 32bit.
Bernard
Bonjour à tous,
Merci pour cette réponse. Mais ce n'est pas ce que j'attendais.
Je cherche un moyen par programmation.
Donc en utilisant l'API (application programing interface) soit de LibreOffice, soit de Windows.
Bien cordialement.
Didier Dorange-Pattoret
Désolé, j'avais lu un peu vite la question (en relisant je vois qu'il est effectivement question de l'API). Mais là, ça sort du champ de mes compétences 
Bernard
Bonjour,
Il suffit d'utiliser en programmation macro Basic la fonction ENVIRON avec
le paramètre "PROCESSOR_ARCHITECTURE" selon le modèle ci-dessous :
si LO 32 bits => environ("PROCESSOR_ARCHITECTURE") retourne x86
si LO 64 bits => environ("PROCESSOR_ARCHITECTURE") retourne AMD64
Bonsoir,
Il suffit d'utiliser en programmation macro Basic la fonction ENVIRON avec
le paramètre "PROCESSOR_ARCHITECTURE" selon le modèle ci-dessous :si LO 32 bits => environ("PROCESSOR_ARCHITECTURE") retourne x86
si LO 64 bits => environ("PROCESSOR_ARCHITECTURE") retourne AMD64
La commande fonctionne sous Windows XP mais pas sous Linux (Debian).
Ce qui semble normal puisque le wiki OOo [1] dit :
"The Environ function returns the environmental variables of the operating system. Depending on the system and configuration, various types of data are saved here. [...]"
(la fonction Environ retourne la valeur des variables d'environnement du système d'exploitation. En fonction du système et de sa configuration, différentes sortes de données y sont stockées.)
Ce que demande Didier c'est de pouvoir reconnaître la version de LibO, pas celle de l'OS. Et, désolé, pas trouvé. J'avais bien pensé à getSolarVersion mais ça ne répond pas non plus à la demande... /o\
[1] https://wiki.openoffice.org/wiki/Documentation/BASIC_Guide/Other_Functions_(Runtime_Library)
Bonsoir,
Merci pour vos réponses.
J'ai trouvé un solution qui semble bonne.
Elle est basée sur l'observation suivante : Dans les Win 64 bits, les applications 32 bits sont dans un dossier nommé Program Files (x86) ...
Cordialement.
Function IsLO5Win64 As Boolean
If (getGuitype = 1 And Instr(GetRepertoirePath("inst"),"x86") = 0 and OOoNumVersion()>=500 and ENVIRON("PROCESSOR_ARCHITECTURE")="AMD64") Then
IsLO5Win64 = True
Else
IsLO5Win64 = False
Endif
End Function
Function GetRepertoirePath(sInstPath as String) as String 'donne le répertoire correspondant
Dim oPathSubstSrv as Object
Dim sPath as String
sInstPath = "$("+sInstPath+")"
oPathSubstSrv = createUnoService("com.sun.star.comp.framework.PathSubstitution")
sPath = ConvertFromUrl(oPathSubstSrv.getSubstituteVariableValue(sInstPath))
GetRepertoirePath = sPath
End Function
Function OOoNumVersion() As Integer
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())
If aSettings.hasbyname("ooSetupVersionAboutBox") Then
sOOOVersion = aSettings.getbyname("ooSetupVersionAboutBox")
Else
sOOOVersion = aSettings.getbyname("ooSetupVersion")
EndIf
If Len(sOOOVersion) = 3 Then sOOOVersion = sOOOVersion & ".0"
OOoNumVersion = Cint(Mid(sOOOVersion,1,1))*100 + Cint(Mid(sOOOVersion,3,1))*10 + Cint(Mid(sOOOVersion,5,1))
End Function
Bonsoir,
ATTENTION!!!
Comme le précise Jean-Francois Nifenecker, cette solution ne fonctionne
*que* pour les applications tournant sous Windows *quelque soit la version*
: XP, 7, 8.1, 10...
En effet, la variable d'environnement "PROCESSOR_ARCHITECTURE" n'existe que
pour le système Windows.
Il en va de même pour la solution trouvée (sur un autre forum...et que je
connais) par Didier Dorange-Pattoret car dans la fonction IsLO5Win64, la
fonction getGuitype est testée avec une valeur de retour à 1 qui correspond
à WINDOWS mais pas aux autres systèmes.
https://help.libreoffice.org/3.6/Basic/GetGuiType_Function_Runtime/fr
<https://help.libreoffice.org/3.6/Basic/GetGuiType_Function_Runtime/fr>
https://books.google.fr/books?id=cHVIk-BlwA0C&pg=PA145&lpg=PA145&dq=getGuitype&source=bl&ots=DWJVHkpR_G&sig=ym_omreHmGBmxtxTa2upBJfrhWY&hl=fr&sa=X&ved=0ahUKEwiDu4vmz4bKAhWBUhoKHZO0CxUQ6AEIVTAF#v=onepage&q=getGuitype&f=false
<https://books.google.fr/books?id=cHVIk-BlwA0C&pg=PA145&lpg=PA145&dq=getGuitype&source=bl&ots=DWJVHkpR_G&sig=ym_omreHmGBmxtxTa2upBJfrhWY&hl=fr&sa=X&ved=0ahUKEwiDu4vmz4bKAhWBUhoKHZO0CxUQ6AEIVTAF#v=onepage&q=getGuitype&f=false>
Bonjour à tous,
Meilleurs voeux de santé et de bonheur pour tous.
Bonsoir,
ATTENTION!!!
Comme le précise Jean-Francois Nifenecker, cette solution ne fonctionne
*que* pour les applications tournant sous Windows *quelque soit la version*
: XP, 7, 8.1, 10...
En effet, la variable d'environnement "PROCESSOR_ARCHITECTURE" n'existe que
pour le système Windows.
Le but de la fonction ISLO5WIN64 est de détecter si la version de LibreOffice installée dans un environnement Windows est en 64 bits.
Et je crois qu'elle remplit bien son rôle.
En tout cas, elle n'a pas encore été mise en défaut.
Sa raison d'être est de me permettre de contourner ce bug : https://bugs.documentfoundation.org/show_bug.cgi?id=96663
Cordialement.