Get Registry Value From Full String Name
Get a REG_SZ (string) registry value from the full key name, such as "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\DirectX". Functions for both default and named values.
AI
ИИ-обзор: This codebase represents a historical implementation of the logic described in the metadata. Our preservation engine analyzes the structure to provide context for modern developers.
Исходный код
'Retrieves a REG_SZ registry value Public Function sGetNamedRegValue(sKey As String, sValue As String) As String Dim sHive As String Dim hKey As Long Dim hHive As Long Dim sData As String Dim lLenData As Long lLenData = 255 sData = String$(255, 0) sHive = Left(sKey, InStr(sKey, "\") - 1) sKey = Replace(sKey, sHive & "\", "") Select Case sHive Case "HKEY_CLASSES_ROOT" hHive = HKEY_CLASSES_ROOT Case "HKEY_CURRENT_CONFIG" hHive = HKEY_CURRENT_CONFIG Case "HKEY_CURRENT_USER" hHive = HKEY_CURRENT_USER Case "HKEY_DYN_DATA" hHive = HKEY_DYN_DATA Case "HKEY_LOCAL_MACHINE" hHive = HKEY_LOCAL_MACHINE Case "HKEY_PERFORMANCE_DATA" hHive = HKEY_PERFORMANCE_DATA Case "HKEY_USERS" hHive = HKEY_USERS End Select Dim lKeyType As Long If RegOpenKeyEx(hHive, sKey, 0, KEY_READ, hKey) = ERROR_SUCCESS Then If RegQueryValueEx(hKey, sValue, 0, lKeyType, ByVal sData, lLenData) = ERROR_SUCCESS Then sGetNamedRegValue = Left(sData, InStr(sData, Chr(0)) - 1) RegCloseKey hKey Exit Function End If RegCloseKey hKey End If sGetNamedRegValue = "" End Function 'Retrieves a default REG_SZ registry value Public Function sGetRegValue(sKey As String) As String Dim sHive As String Dim hKey As Long Dim hHive As Long Dim sData As String Dim lLenData As Long lLenData = 255 sData = String$(255, 0) sHive = Left(sKey, InStr(sKey, "\") - 1) sKey = Replace(sKey, sHive & "\", "") Select Case sHive Case "HKEY_CLASSES_ROOT" hHive = HKEY_CLASSES_ROOT Case "HKEY_CURRENT_CONFIG" hHive = HKEY_CURRENT_CONFIG Case "HKEY_CURRENT_USER" hHive = HKEY_CURRENT_USER Case "HKEY_DYN_DATA" hHive = HKEY_DYN_DATA Case "HKEY_LOCAL_MACHINE" hHive = HKEY_LOCAL_MACHINE Case "HKEY_PERFORMANCE_DATA" hHive = HKEY_PERFORMANCE_DATA Case "HKEY_USERS" hHive = HKEY_USERS End Select If RegQueryValue(hHive, sKey, sData, lLenData) = ERROR_SUCCESS Then sGetRegValue = Left(sData, InStr(sData, Chr(0)) - 1) Exit Function End If sGetRegValue = "" End Function
Оригинальные комментарии (3)
Восстановлено из Wayback Machine