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

Répondre à