这可以建立,但是到目前为止我还不需要。
这在我的数据库中使用并存储为modOS。
Option Compare Database
Option Explicit
Public Const conHKCR = &H80000000
Public Const conHKCU = &H80000001
Public Const conHKLM = &H80000002
Public Const conHKU = &H80000003
Public Const conStandardRightsAll = &H1F0000
Public Const conReadControl = &H20000
Public Const conStandardRightsRead = (conReadControl)
Public Const conRegSz = 1
Public Const conOK = 0&
Public Const conKeyQueryValue = &H1
Public Const conKeySetValue = &H2
Public Const conKeyCreateLink = &H20
Public Const conKeyCreateSubKey = &H4
Public Const conKeyEnumerateSubKeys = &H8
Public Const conKeyNotify = &H10
Public Const conSynchronise = &H100000
Public Const conRegOptionNonVolatile = 0
Public Const conKeyAllAccess = ((conStandardRightsAll Or _
conKeyQueryValue Or _
conKeySetValue Or _
conKeyCreateSubKey Or _
conKeyEnumerateSubKeys Or _
conKeyNotify Or _
conKeyCreateLink) And _
(Not conSynchronise))
Public Const conKeyRead = ((conReadControl Or _
conKeyQueryValue Or _
conKeyEnumerateSubKeys Or _
conKeyNotify) And _
(Not conSynchronise))
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
Private Declare Function RegQueryValueExStr 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
Public Function RegRead(ByVal lngHive As Long, _
ByVal strKey As String, _
ByVal strValue As String) As Variant
Dim intIdx As Integer, intHK As Integer
Dim strWork As String
Dim lngRet As Long, lngLen As Long, lngHKey As Long, lngType As Long
RegRead = Null
strKey = strKey & Chr(0)
lngRet = RegOpenKeyEx(lngHive, strKey, 0, conKeyRead, lngHKey)
If lngRet = conOK Then
'Create buffer to store value
strWork = Space(255)
lngLen = 255
lngRet = RegQueryValueExStr(lngHKey, _
strValue, _
0&, _
lngType, _
strWork, _
lngLen)
RegRead = Left(strWork, lngLen - 1)
If Len(RegRead) = 254 Then RegRead = Null
'Close key
Call RegCloseKey(lngHKey)
End If
End Function
From: https://bytes.com/topic/access/insights/615553-module-read-windows-registry