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+unsubscribe@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
Context
Privacy Policy |
Impressum (Legal Info) |
Copyright information: Unless otherwise specified, all text and images
on this website are licensed under the
Creative Commons Attribution-Share Alike 3.0 License.
This does not include the source code of LibreOffice, which is
licensed under the Mozilla Public License (
MPLv2).
"LibreOffice" and "The Document Foundation" are
registered trademarks of their corresponding registered owners or are
in actual use as trademarks in one or more countries. Their respective
logos and icons are also subject to international copyright laws. Use
thereof is explained in our
trademark policy.