Obtenir la version de direct x installée

Soyez le premier à donner votre avis sur cette source.

Snippet vu 8 009 fois - Téléchargée 28 fois

Contenu du snippet

cette source permet de récupérer la version de directx installée sur la machine, il faut coller la dll dsetup.dll dans le dossier system de windows ( disponible entre autres dans les SDK direct x)
c'est un code VB6

Source / Exemple :


Private Declare Function DirectXSetupGetVersion Lib "dsetup.dll" (dwVersion As Long, dwRevision As Long) As Long 'fonction qui récupère les infos version directx
Dim lMajor As Long, lMinor As Long 'valeurs retournées par la fonction DirectXSetupGetVersion
Private Const Hmajorminor As Long = &HFFFF0000 'filtrage octet poids fort
Private Const Lmajorminor As Long = &HFFFF 'filtrage octet poids faible

Private Sub Form_Load()
ret = DirectXSetupGetVersion(Major, Minor) ' récupération de la version dans major et minor , ret = 0 si ca a pas marché
Hmajor = Major - (Major And Hmajorminor) 'filtrage poids fort poids faible
lMajor = Major - (Major And Lmajorminor) 'filtrage poids fort poids faible
Hminor = Minor - (Minor And Hmajorminor) 'filtrage poids fort poids faible
lMinor = Minor - (Minor And Lmajorminor) 'filtrage poids fort poids faible
MsgBox ("version directx : " & Hmajor & "." & lMajor & "." & Hminor & "." & lMinor)'affichage version
End Sub

Conclusion :


merci de me dire si il y a des bugs , des os incompatible etc ...

A voir également

Ajouter un commentaire

Commentaires

Messages postés
75
Date d'inscription
dimanche 2 octobre 2005
Statut
Membre
Dernière intervention
24 juin 2007

tu m'as pris de vitesse Neo.balastik , j'allais justement ajouter cette astuce
Messages postés
797
Date d'inscription
jeudi 17 mai 2001
Statut
Membre
Dernière intervention
5 mai 2009
5
La méthode ne me séduit pas vu qu'il y a obligation d'intégrer dsetup.dll dans System32.
Pourquoi ne pas aller chercher directement la version de DirectX dans la registry ?
Voici un exemple en VB utilisant WSH (WScript.Shell). On aurait pu passer par API, mais bcp plus de code...

Dim objShell
Dim strKey, strKey2
Dim strDirectXVersion
Dim arrayBytes, byt, s

strKey = "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\DirectX\Version"
strKey2 = "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\DirectX\InstalledVersion"

Set objShell = CreateObject("WScript.Shell")

strDirectXVersion = objShell.RegRead(strKey)

arrayBytes = objShell.RegRead(strKey2)

'WSH est incapable de convertir une valeur binaire dans le registre.
'On transforme donc le résultat obtenu sous une forme compatible sinon il y aura erreur si
'l'on tente de lire directement la valeur
For Each byt In arrayBytes
s = s & Right("0" & Hex(byt), 2) & " "
Next

MsgBox "DirectX version " & strDirectXVersion & vbCrLf & "Installed Version (valeur binaire): " & s

Guy
Messages postés
4030
Date d'inscription
mardi 13 mai 2003
Statut
Modérateur
Dernière intervention
23 décembre 2008
20
Disons que depuis hier soir, il est normal de ne pas avoir de commentaires.
Le dimanche soir => DODO
Le lundi matin => BOULOT
avec le METRO entre les deux.

Je ne connaissais pas la fonction que tu présentes ici. Elle est certes très pratique, mais difficile de poser un commentaire là-dessus.
Elle existe, elle fait bien son boulot. C'est bien, mais y'a pas grand chose à dire.

Ce n'est pas ta création personnelle, ta valeur ajoutée se situe juste dans la présentation de la chose ...
On ne va quand même pas noter une fonction pareille !

On peut juste te remercier de l'avoir partagée avec nous. Ca en aidera plus d'un !
Messages postés
75
Date d'inscription
dimanche 2 octobre 2005
Statut
Membre
Dernière intervention
24 juin 2007

pas beaucoup de réponse on dirait ...

allez, au moins une petite note ;)

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.