Get mail client, news, calender, contacts, etc.

By | 2002-06-01

Finds the default client (default program which Internet Explorer uses) for mail, news, contacts, calender, internet call.

Original Author: Chris Porter

Inputs

Which client you want to find where is stored, for example mail, news or contacts.

Assumptions

Has only been tested with IE 5.0, and 4.0 under Win98. It might run on Win95, and IE versions lower than 5.0.

Returns

It returns where the client is stored on the hard drive.

API Declarations

‘All is pasted into the form.

Code

Option Explicit
Private Declare Function RegCloseKey Lib "advapi32.dll" (ByVal hKey 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 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 Type TypesOfClient
Mail As String
News As String
Calendar As String
Contacts As String
Internet_Call As String
End Type
'Get the registry keys for the programs location
Function GetReg(hInKey As Long, ByVal subkey As String, ByVal valname As String)
Dim RetVal As String, hSubKey As Long, dwType As Long
Dim SZ As Long, v As String, r As Long
RetVal = ""
r = RegOpenKeyEx(hInKey, subkey, 0, 983139, hSubKey)
If r <> 0 Then GoTo Ender
SZ = 256: v = String(SZ, 0)
r = RegQueryValueEx(hSubKey, valname, 0, dwType, ByVal v, SZ)
If r = 0 And dwType = 1 Then
RetVal = Left(v$, SZ - 1)
Else
RetVal = ""
End If
If hInKey = 0 Then r = RegCloseKey(hSubKey)
Ender:
GetReg = RetVal
End Function

Private Function GetClient() As TypesOfClient
Static KeyName As String, O(5) As String, i As Byte, d As String
O(1) = "Mail"
O(2) = "News"
O(3) = "Calendar"
O(4) = "Contacts"
O(5) = "Internet Call"
'In this tedious method I have to get all 5.
For i = 1 To 5
KeyName = "SoftwareClients" + O(i) + ""
d = GetReg(&H80000002, KeyName, "")
KeyName = KeyName + d + "ShellOpenCommand"
d = GetReg(&H80000002, KeyName, "")
O(i) = d
Next i
'Set the values to where the programs were found.
GetClient.Mail = O(1)
GetClient.News = O(2)
GetClient.Calendar = O(3)
GetClient.Contacts = O(4)
GetClient.Internet_Call = O(5)
End Function
Private Sub Form_Load()
'Run the mail client
Shell GetClient.Mail
End Sub

Author: dwirch

Derek Wirch is a seasoned IT professional with an impressive career dating back to 1986. He brings a wealth of knowledge and hands-on experience that is invaluable to those embarking on their journey in the tech industry.

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.