Salut
Pour trouver le client messagerie, j'utilise les API RegOpenKeyEx et RegQueryValueEx, exemple :
Public Const ERROR_SUCCESS = 0&
Public Const HKEY_LOCAL_MACHINE = &H80000002
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
Declare Function RegQueryValueEx _
Lib "advapi32" 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
Public Function GetDefaultMailClient() As String
Dim hKey As Long
Dim sKey As String
Dim buffer As String
sKey = "Software\Clients\Mail"
hKey = OpenRegKey(HKEY_LOCAL_MACHINE, sKey)
If hKey <> 0 Then
buffer = GetRegValue(hKey, vbNullString)
RegCloseKey hKey
GetDefaultMailClient = buffer
End If
End Function
' ---------------------------------------------------------
' Cette fonction retourne la valeur demandée si elle existe
' ---------------------------------------------------------
Private Function GetRegValue(hSubKey As Long, sKeyName As String) As String
Dim lpValue As String ' Valeur retournée
Dim lpcbData As Long ' Longueur de la valeur retournée
If hSubKey <> 0 Then ' Si la clé existe
lpValue = Space$(260)
lpcbData = Len(lpValue)
' Trouver la valeur demandée si elle existe
If RegQueryValueEx _
( _
hSubKey, _
sKeyName, _
0&, _
0&, _
ByVal lpValue, _
lpcbData _
) = ERROR_SUCCESS Then
GetRegValue = Split(lpValue, Chr$(0))(0)
End If
End If
End Function
' -------------------------------------------------------------------
' Cette fonction retourne le numéro de la clé demandée si elle existe
' -------------------------------------------------------------------
Private Function OpenRegKey(ByVal hKey As Long, ByVal lpSubKey As String) As Long
Dim hSubKey As Long
If RegOpenKeyEx _
( _
hKey, _
lpSubKey, _
0, _
KEY_READ, _
hSubKey _
) = ERROR_SUCCESS Then
OpenRegKey = hSubKey
End If
End Function
Tu mets tout ça dans un module et tu interroge comme ça :
Nom_messagerie = GetDefaultMailClient
Mais, attention, je n'ai pas testé avec tous les clients de messagerie qui existent.
Cordialement, CanisLupus