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
Le 29/12/2015 22:06, Jean-Francois Nifenecker a écrit :
Bonsoir,
Le 29/12/2015 19:01, ThierryT a écrit :
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_%28Runtime_Library%29
--
Didier Dorange-Pattoret
Tel : +33.6.32.38.87.02
http://www.dmaths.org
Soutenez le projet Dmaths : rejoignez le club ou faites adhérer votre
établissement !
http://www.dmaths.org/documentation/doku.php?id=presentation:club
--
Envoyez un mail à users+unsubscr...@fr.libreoffice.org pour savoir comment vous
désinscrire
Les archives de la liste sont disponibles à
http://listarchives.libreoffice.org/fr/users/
Tous les messages envoyés sur cette liste seront archivés publiquement et ne
pourront pas être supprimés