IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB 6 et antérieur Discussion :

Trouver la version de MSXML installée


Sujet :

VB 6 et antérieur

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Expert éminent


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Par défaut Trouver la version de MSXML installée
    Avant de céder à la mode des "Trucs & Astuces" ...

    je voudrais voir si ce que vous pouvez me proposer pour connaitre la version (majeure) de MSXML installé sur votre PC..:

    J'ai cela :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Dim iVersion As Integer
    On Error Resume Next
    For i = 4 To 9
     
      Set oXML = CreateObject("MSXML2.MXXMLWriter." & i & ".0")
      If Not oXML Is Nothing Then iVersion = i
      Set oXML = Nothing
     Next
     Debug.Print iVersion
    une autre idée ?

  2. #2
    Rédacteur
    Avatar de DarkVader
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2002
    Messages
    2 131
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 131
    Par défaut
    Bonsoir Bbil,
    vu l'heure, faisons court, éventuellement, ce sera plus long demain :
    sClsid = regGetValue(HKEY_CLASSES_ROOT, "msxml2\clsid", "")
    sTypeLib = regGetValue(HKEY_CLASSES_ROOT, "Clsid\" + sClsid + "\Typelib", "")
    tmp() = regEnumSection(HKEY_CLASSES_ROOT, "Typelib\" + sTypeLib)

    Je te laisse développer GetValue et EnumSection
    Derrière chaque version énumérée, tu trouveras :
    * la description de la librairie comme valeur par defaut,
    * la section Lcid (ou la valeur de révision) qui elle-même contient la section win32 dont la valeur par défaut indique le chemin complet à la librairie.
    Flags indique le type de librairie

    Bonne soirée

  3. #3
    Inactif  

    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    4 555
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 4 555
    Par défaut
    Bonjour,

    C'est peut-être ce qui figure entre guillemets dans cette ligne, qui ne va pas :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set oXML = CreateObject("MSXML2.MXXMLWriter." & i & ".0")
    Où l'as-tu trouvée ? (cela aidera)

  4. #4
    Expert éminent


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Par défaut
    Citation Envoyé par ucfoutu Voir le message
    Bonjour,

    C'est peut-être ce qui figure entre guillemets dans cette ligne, qui ne va pas :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set oXML = CreateObject("MSXML2.MXXMLWriter." & i & ".0")
    Où l'as-tu trouvée ? (cela aidera)

    non pas de problème il marche le code ... je l'ai pas trouvé je l'ai écris...

    mais bon la méthode je suis pas sur qu'elle soit "terrible..." ..


    @Dark .. : ta méthode semble être une solution, j'ai réussi à trouver un "RegGetValue", mais j'ai plus de mal avec le enumSection

  5. #5
    Inactif  

    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    4 555
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 4 555
    Par défaut
    Je n'ai rien sous la main pour vérifier, mais (d'instinct) c'est un document que je créerais par createobject et j'irais ensuite contrôler sa propriété .version.
    Il va de soi que cela ne pourrait marcher que si la création d'un document de ce type pouvait se faire sur la machine.

  6. #6
    Expert éminent


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Par défaut
    C'est ce que j'ai fait au début mais la classe DOMDocument ne possède pas de propriété version .. par contre la classe MXXMLWriter oui c'est pour cela que j'étais parti avec MXXMLWriter sauf que version renvoi toujours 1 (sur mon pc...)

    C'est pour cela que me suis rabattu sur la boucle avec le On Error... histoire de tester l'objet avec le plus grand numéro de version dont la création est possible sans erreur...

Discussions similaires

  1. Commande pour trouver la version de Linux
    Par Gogoye dans le forum Administration système
    Réponses: 11
    Dernier message: 12/02/2013, 15h43
  2. Réponses: 1
    Dernier message: 02/03/2006, 15h07
  3. Comment savoir quelle version d'MSXML IE utilise?
    Par trent94 dans le forum XML/XSL et SOAP
    Réponses: 2
    Dernier message: 17/07/2005, 18h38
  4. [Jacob] gérer deux versions de Word installées
    Par difdaf dans le forum Documents
    Réponses: 2
    Dernier message: 16/07/2004, 18h32
  5. déterminer la version de Winsock installée
    Par BlueX_scf dans le forum Web & réseau
    Réponses: 7
    Dernier message: 24/02/2003, 10h23

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo