从Windows注册表读取的模块

这可以建立,但是到目前为止我还不需要。

这在我的数据库中使用并存储为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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值