Page 1 sur 2

Tester la version de DirectX

Publié : jeu. 03/mai/2018 19:17
par falsam
Objectif : Tester la version de DirectX

- Ajout de la valeur "10.00.10240.16384" pour tester DirectX 12

Code : Tout sélectionner

Procedure.s RegReadKey(TopKey.l, KeyName.s, ValueName.s, Type.l, ComputerName.s) 
  Protected Error.l, hKey.l, lReturnCode.l, lhRemoteRegistry.l, BufferSize, Value.q, Result.s
  
  If ComputerName = "" 
    Error = RegOpenKeyEx_(TopKey, KeyName, 0, #KEY_READ, @hKey) 
  Else 
    lReturnCode = RegConnectRegistry_(ComputerName, topKey, @lhRemoteRegistry) 
    Error = RegOpenKeyEx_(lhRemoteRegistry, KeyName, 0, #KEY_READ, @hKey) 
  EndIf 
  
  If Error = #ERROR_SUCCESS  
    RegQueryValueEx_(hKey, ValueName, 0, @type, 0, @BufferSize)
    
    Select Type 
      Case #REG_SZ,#REG_EXPAND_SZ
        
        If bufferSize
          value = AllocateMemory(buffersize)
          If value
            Error = RegQueryValueEx_(hKey, ValueName, 0, 0, Value, @BufferSize)
             
            If Error = #ERROR_SUCCESS
              Result = PeekS(value)  
            EndIf
            FreeMemory(value)
          Else
            Error = #ERROR_NOT_ENOUGH_MEMORY
          EndIf  
        EndIf       
        
      Case #REG_DWORD, #REG_QWORD 
        Error = RegQueryValueEx_ (hKey, ValueName, 0, 0 , @Value, @BufferSize)
        If Error = #ERROR_SUCCESS
          Result = Str(Value)
        EndIf
          
    EndSelect 
      
    RegCloseKey_(hkey) 
  EndIf
  
  ProcedureReturn Result
EndProcedure

Procedure.s DX_Version()

  Protected TopKey.l = #HKEY_LOCAL_MACHINE
  Protected KeyName.s = "Software\Microsoft\DirectX"
  Protected Value.s = "Version"

  DXVersion$ = RegReadKey(TopKey, KeyName, Value, #REG_DWORD,"")
  
  Select DXVersion$
    Case "4.02.0095"
      Version_DX$ = "1.0"
    Case "4.03.00.1096"
      Version_DX$ = "2.0"
    Case "4.04.0068"
      Version_DX$ = "3.0"
    Case "4.04.0069"
      Version_DX$ = "3.0"
    Case "4.05.00.0155"
      Version_DX$ = "5.0"
    Case "4.05.01.1721"
      Version_DX$ = "5.0"
    Case "4.05.01.1998"
      Version_DX$ = "5.0"
    Case "4.06.02.0436"
      Version_DX$ = "6.0"
    Case "4.07.00.0700"
      Version_DX$ = "7.0"
    Case "4.07.00.0716"
      Version_DX$ = "7.0a"
    Case "4.08.00.0400"
      Version_DX$ = "8.0"
    Case "4.08.01.0881"
      Version_DX$ = "8.1"
    Case "4.08.01.0810"
      Version_DX$ = "8.1"
    Case "4.09.0000.0900"
      Version_DX$ = "9.0"
    Case "4.09.00.0900"
      Version_DX$ = "9.0"
    Case "4.09.0000.0901"
      Version_DX$ = "9.0a"
    Case "4.09.00.0901"
      Version_DX$ = "9.0a"
    Case "4.09.0000.0902"
      Version_DX$ = "9.0b"
    Case "4.09.0000.0902"
      Version_DX$ = "9.0b"
    Case "4.09.00.0903"
      Version_DX$ = "9.0c"
    Case "4.09.00.0904"
      Version_DX$ = "9.0c"
    Case "4.09.00.0904 (RC0)"
      Version_DX$ = "9.0c"
    Case "4.09.00.0905 (RC0)"  
      Version_DX$ = "9.25.1476"
    Case "4.09.00.0906 (RC0)"  
      Version_DX$ = "9.26.1590"
    Case "4.09.6000.16386"
      Version_DX$ = "10"
    Case "6.00.6000.16386"
      Version_DX$ = "10"  
    Case "6.00.6001.18000"
      Version_DX$ = "10.1"
    Case "6.01.7600.16385"
      Version_DX$ = "11"
    Case "6.01.7601.17514"
      Version_DX$ = "11"
    Case "6.02.9200.16384"
      Version_DX$ = "11.1"
    Case "6.03.9600.16384"
      Version_DX$ = "11.2"
    Case "10.00.10240.16384"
      Version_DX$ = "12.0"
      
  EndSelect
    
  ProcedureReturn Version_DX$ + " ("+DXVersion$+")"
      
EndProcedure
  
Debug "Version directX "+ DX_Version()
Si quelques uns d'entres vous pouvez me retourner un résultat en spécifiant l'OS. Merci.

Re: Tester la version de DirectX

Publié : jeu. 03/mai/2018 19:30
par GallyHC
Bonjour,

Pour ma part "Version directX 9.0c (4.09.00.0904)" avec Windows7.

Cordialement,
GallyHC

Re: Tester la version de DirectX

Publié : jeu. 03/mai/2018 19:43
par SPH
Version directX 9.0c (4.09.00.0904)
bizzare, car je suis sous w10 !

Re: Tester la version de DirectX

Publié : jeu. 03/mai/2018 19:45
par falsam
SPH a écrit :bizzare, car je suis sous w10 !
Tu as peut être installé un jeu qui lui même a installé DirectX 9c pour qu'il puisse fonctionner.

Re: Tester la version de DirectX

Publié : jeu. 03/mai/2018 20:00
par Ar-S
Pour savoir quelle version de Direct X vous utilisez faites
Démarrer / executer (ou Windows + R)
et tapez DXDIAG

Re: Tester la version de DirectX

Publié : jeu. 03/mai/2018 20:12
par falsam
Ar-S a écrit :Pour savoir quelle version de Direct X vous utilisez faites
Démarrer / executer (ou Windows + R)
et tapez DXDIAG
Mince j'aurais écrire dans mon premier message que ce n'était pas la peine de signaler l’existence de DxDiag qui lui renseigne sur la version installée de DirectX.

J'ai Windows 10 avec DirectX 12 installé.

Je pense que le code indique la compatibilité utilisée qui est chez moi
Version directX 9.0c (4.09.00.0904)

Re: Tester la version de DirectX

Publié : jeu. 03/mai/2018 20:32
par SPH
Ar-S a écrit :Pour savoir quelle version de Direct X vous utilisez faites
Démarrer / executer (ou Windows + R)
et tapez DXDIAG
Avec dxdiag, j'ai bien dx12 :!:

Re: Tester la version de DirectX

Publié : jeu. 03/mai/2018 21:08
par Ar-S
@falsam
J'avoue que je m'en doutais... Mais ça rassure SPH comme ça :D

Re: Tester la version de DirectX

Publié : ven. 04/mai/2018 6:36
par Micoute
Bonjour à tous,
en fait je suis comme SPH 9.0c (4.09.00.0904) avec la méthode falsam et 12 par la méthode Ar-s

Re: Tester la version de DirectX

Publié : ven. 04/mai/2018 8:51
par falsam
@Ar-s : Pas de souci. L'importance est que SPH soit rassuré :wink:

@Micoute : Avec ce teste je sais que c'est DirectX 9c que ton système connait.

Re: Tester la version de DirectX

Publié : ven. 04/mai/2018 8:57
par microdevweb
sur windows 10

Version directX 9.0c (4.09.00.0904)

[Résolu] Tester la version de DirectX

Publié : ven. 04/mai/2018 9:02
par Micoute
falsam a écrit :@Ar-s : Pas de souci. L'importance est que SPH soit rassuré :wink:

@Micoute : Avec ce teste je sais que c'est DirectX 9c que ton système connait.
ça m'a permit de savoir qu'il fallait que je remettre mon pilote à jour, ce qui a résolu mon problème.

Re: Tester la version de DirectX

Publié : ven. 04/mai/2018 9:03
par falsam
Merci Microdevweb. Je suis perplexe sur cette item de la base de registre dont je fais référence dans le code. Quel type d'information renvoit il ?

Re: Tester la version de DirectX

Publié : ven. 04/mai/2018 9:06
par falsam
@Micoute : C'était le but de ce code pour répondre à ta problématique dans un autre sujet

Re: Tester la version de DirectX

Publié : ven. 04/mai/2018 9:26
par microdevweb
falsam a écrit :Merci Microdevweb. Je suis perplexe sur cette item de la base de registre dont je fais référence dans le code. Quel type d'information renvoit il ?
Je ne comprend pas bien ta question ?