- 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()