Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

[VBA] Lire une donnée (Par défaut) dans la base de registre...

1 réponse
Avatar
HD
Bonjour,

Je voudrais pouvoir récupérer l'emplacement du fichier .wab d'Outlook
Express à partir d'un script VBA... La donnée se trouve à cet emplacement :
HKEY_CURRENT_USER\Software\Microsoft\WAB\WAB4\Wab File Name\

Mais le problème est que la donnée se trouve dans la valeur de chaîne (Par
défaut)... Je n'arrive pas à la récupérer...

Auriez vous un script le permettant ?

Merci d'avance pour votre aide
--
@+
HD

1 réponse

Avatar
HD
Pour ceux que ça intéresse... J'ai fini par trouver quelque chose que j'ai
adapté :

Option Explicit

'Private Declare Function RegOpenKey Lib "advapi32.dll" Alias "RegOpenKeyA"
_
'(ByVal hKey As Long, ByVal lpSubKey As String, phkResult As Long) As Long

'Cette declare n'est pas correcte:
' Private Declare Function RegQueryValueEx Lib "advapi32.dll" _
' Alias "RegQueryValueExA" (ByVal hKey As Long, _
' ByVal lpValueName As String, ByVal lpReserved As Long, lpType As Long, _
' lpData As Any, lpcbData As Long) As Long


Private Declare Function RegQueryValueEx Lib "advapi32.dll" Alias
"RegQueryValueExA" ( _
ByVal hKey As Long, _
ByVal lpValueName As String, _
ByVal lpReserved As Long, _
lpType As Long, _
ByVal lpData As String, _
lpcbData As Long) _
As Long

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

Function WabFile() As String
Const HKEY_CURRENT_USER = &H80000001
Const KEY_QUERY_VALUE = &H1
Const REG_SZ = 1
Const strKey = "SoftwareMicrosoftWABWAB4Wab File Name"
Const strValueName = ""

Dim lngSizeData As Long
Dim strData As String
Dim hKey As Long

' Appel de la première fonction pour ouverture
' RegOpenKey HKEY_LOCAL_MACHINE, strKey, hKey

' Appel de la deuxième fonction pour recup
' RegQueryValueEx hKey, strValueName, 0, 0, strData, lngSizeData
' MsgBox strData


strData = Space(255)
RegOpenKeyEx HKEY_CURRENT_USER, strKey, 0&, KEY_QUERY_VALUE, hKey
RegQueryValueEx hKey, "", 0&, REG_SZ, ByVal strData, Len(strData)
RegCloseKey hKey
WabFile = Left(strData, InStr(1, strData, Chr(0)) - 1)
End Function