Read Time Zone Names Stored in the Registry

Read Time Zone Names Stored in the Registry

The following code reads the time zone names stored in the registry and places those names in a combobox. The time zone names (there are about 50 or so) look like: “Greenwich Standard Time, Newfoundland Standard Time, Tasmania Standard Time,” etc.

Option ExplicitDim TimeZoneCol As CollectionConst ValueName As String = "Display"Const MasterKey As String = "SOFTWAREMicrosoftWindows NTCurrentVersionTime Zones"Private Sub Form_Load()    Dim KeyCol As Collection    'be sure key exists    If MRegistry.CheckRegistryKey(HKEY_LOCAL_MACHINE, MasterKey) Then        'retrieve all subkeys        Set KeyCol = MRegistry.EnumRegistryKeys(MRegistry.HKEY_LOCAL_MACHINE, MasterKey)        Dim TheKey As Variant        Set TimeZoneCol = New Collection        'for each subkey, get the "Name" value        For Each TheKey In KeyCol             CboTimeZone.AddItem MRegistry.GetRegistryValue(MRegistry.HKEY_LOCAL_MACHINE, addSlash(MasterKey) & TheKey, ValueName, "")        Next    End IfEnd SubPrivate Function addSlash(ByVal sPath As String) As String    sPath = Trim(sPath)    If Len(sPath) > 0 Then        If Right$(sPath, 1)  "/" Then            If Right$(sPath, 1)  "" Then                sPath = sPath & ""            End If        End If        addSlash = sPath    End IfEnd Function

NOTE: The class MRegistr handles the registry reading issues. The combobox CboTimeZone fills MRegistr with the time zones.


Share the Post: