Renfield
Messages postés17287Date d'inscriptionmercredi 2 janvier 2002StatutModérateurDernière intervention27 septembre 202174 16 janv. 2006 à 16:21
ton erreur est là :
lRet = RegOpenKeyEx(HKEY_LOCAL_MACHINE, "HARDWARE\DEVICEMAP\VIDEO\Device\Video0", 0&, KEY_ALL_ACCESS, lKeyHandle)
la clé est
HARDWARE\DEVICEMAP\VIDEO\
pas
HARDWARE\DEVICEMAP\VIDEO\Device\Video0
voici une version 'Light' de ton code :
Dim hKey As Long
Dim nLength As Long
Dim sBuffer As String
If RegOpenKeyEx(HKEY_LOCAL_MACHINE, "HARDWARE\DEVICEMAP\VIDEO", 0&, KEY_ALL_ACCESS, hKey) = ERROR_SUCCESS Then
nLength = 1024
sBuffer = Space$(nLength)
If RegQueryValueEx(hKey, "\Device\Video0", 0&, REG_SZ, sBuffer, nLength) = ERROR_SUCCESS Then
sBuffer = Left$(sBuffer, nLength)
MsgBox sBuffer
End If
RegCloseKey hKey
End If
Private Const HKEY_LOCAL_MACHINE As Long = &H80000002
Private Const KEY_ALL_ACCESS As Long = &H3F
Private Const ERROR_SUCCESS As Long = 0&
Private Const REG_SZ As Long = 1&
Private Const REG_BINARY As Long = 3
Private Declare Function RegOpenKeyEx Lib "advapi32.dll" Alias "RegOpenKeyExA" (ByVal hKey As Long, ByVal lpSubKey As String, ByVal ulOptions As Long, ByVal samDesired As Long, phkResult As Long) As Long
Private Declare Function RegCloseKey Lib "advapi32.dll" (ByVal hKey As Long) As Long
Private Declare Function RegQueryValueEx Lib "advapi32" Alias "RegQueryValueExA" (ByVal hKey As Long, ByVal lpValueName As String, ByVal lpReserved As Long, ByRef lpType As Long, ByRef szData As Any, ByRef lpcbData As Long) As Long
Private Sub Form_Load()
Dim hKey As Long
Dim nLength As Long
Dim sBuffer As String
Dim sPath As String
Dim sMsg As String
If RegOpenKeyEx(HKEY_LOCAL_MACHINE, "HARDWARE\DEVICEMAP\VIDEO", 0&, KEY_ALL_ACCESS, hKey) = ERROR_SUCCESS Then
nLength = 1024
sBuffer = Space$(nLength)
If RegQueryValueEx(hKey, "\Device\Video0", 0&, REG_SZ, ByVal sBuffer, nLength) = ERROR_SUCCESS Then
sPath = Left$(sBuffer, nLength)
RegCloseKey hKey
If RegOpenKeyEx(HKEY_LOCAL_MACHINE, Mid$(sPath, 19), 0&, KEY_ALL_ACCESS, hKey) = ERROR_SUCCESS Then
nLength = 1024
sBuffer = Space$(nLength)
If RegQueryValueEx(hKey, "HardwareInformation.AdapterString", 0&, REG_SZ, ByVal sBuffer, nLength) = ERROR_SUCCESS Then
sBuffer = Left$(sBuffer, nLength)
sMsg = "Carte : " & StrConv(sBuffer, vbFromUnicode) & vbNewLine
End If
nLength = 1024
sBuffer = Space$(nLength)
If RegQueryValueEx(hKey, "HardwareInformation.MemorySize", 0&, REG_BINARY, nLength, 4) = ERROR_SUCCESS Then
sMsg = sMsg & "Mémoire : " & CStr(nLength / 1024 / 1024) & " Mo"
End If
MsgBox sMsg, vbInformation
RegCloseKey hKey
End If
Else
RegCloseKey hKey
End If
End If
Unload Me
End Sub
-------------------------------------------------------------------
PCPT
Messages postés13272Date d'inscriptionlundi 13 décembre 2004StatutMembreDernière intervention 3 février 201847 17 janv. 2006 à 18:52
pour info voici ta déclaration (qui est la bonne)
Private Declare Function RegQueryValueEx Lib "advapi32" Alias
"RegQueryValueExA" (ByVal hKey As Long, ByVal lpValueName As String,
ByVal lpReserved As Long, ByRef lpType As Long, ByRef szData As Any, ByRef lpcbData As Long) As Long
contre ByVal .... String que j'utilisais, 2e source d'erreur ^^