modReg.bas
上传用户:yinyu8822
上传日期:2021-04-28
资源大小:79k
文件大小:5k
开发平台:

Visual Basic

  1. Attribute VB_Name = "modReg"
  2. 'Download by http://www.codefans.net
  3. Declare Function RegEnumValue Lib "advapi32.dll" Alias "RegEnumValueA" (ByVal hKey As Long, ByVal dwIndex As Long, ByVal lpValueName As String, lpcbValueName As Long, ByVal lpReserved As Long, lpType As Long, ByVal lpData As String, lpcbData As Long) As Long
  4. Declare Function RegOpenKeyEx Lib "advapi32" Alias "RegOpenKeyExA" (ByVal hKey As Long, ByVal lpSubKey As String, ByVal ulOptions As Long, ByVal samDesired As Long, phkResult As Long) As Long
  5. Declare Function RegSetValueEx Lib "advapi32" Alias "RegSetValueExA" (ByVal hKey As Long, ByVal lpValueName As String, ByVal Reserved As Long, ByVal dwType As Long, ByVal szData As String, ByVal cbData As Long) As Long
  6. Declare Function RegCloseKey Lib "advapi32" (ByVal hKey As Long) As Long
  7. Declare Function RegCreateKeyEx Lib "advapi32" Alias "RegCreateKeyExA" (ByVal hKey As Long, ByVal lpSubKey As String, ByVal Reserved As Long, ByVal lpClass As String, ByVal dwOptions As Long, ByVal samDesired As Long, lpSecurityAttributes As SECURITY_ATTRIBUTES, phkResult As Long, lpdwDisposition As Long) As Long
  8. Declare Function RegCreateKey Lib "advapi32.dll" Alias "RegCreateKeyA" (ByVal hKey As Long, ByVal lpSubKey As String, phkResult As Long) As Long
  9. Declare Function RegDeleteValue Lib "advapi32.dll" Alias "RegDeleteValueA" (ByVal hKey As Long, ByVal lpValueName As String) As Long
  10.     #If Win32 Then
  11.         
  12.         Public Const HKEY_CLASSES_ROOT = &H80000000
  13.         Public Const HKEY_CURRENT_USER = &H80000001
  14.         Public Const HKEY_LOCAL_MACHINE = &H80000002
  15.         Public Const HKEY_USERS = &H80000003
  16.         Public Const KEY_ALL_ACCESS = &H3F
  17.         Public Const REG_OPTION_NON_VOLATILE = 0&
  18.         Public Const REG_CREATED_NEW_KEY = &H1
  19.         Public Const REG_OPENED_EXISTING_KEY = &H2
  20.         Public Const ERROR_SUCCESS = 0&
  21.         Public Const REG_SZ = (1)
  22.     #End If
  23. Type SECURITY_ATTRIBUTES
  24.     
  25.     nLength As Long
  26.     lpSecurityDescriptor As Long
  27.     bInheritHandle As Boolean
  28. End Type
  29. Public Const SREG = "SOFTWARESpyder-Net ProductionsSpyderPF"
  30. Public Function bSetRegValue(ByVal hKey As Long, ByVal lpszSubKey As String, ByVal sSetValue As String, ByVal sValue As String) As Boolean
  31.     
  32.     On Error Resume Next
  33.     Dim phkResult As Long
  34.     Dim lResult As Long
  35.     Dim SA As SECURITY_ATTRIBUTES
  36.     Dim lCreate As Long
  37.     RegCreateKeyEx hKey, lpszSubKey, 0, "", REG_OPTION_NON_VOLATILE, KEY_ALL_ACCESS, SA, phkResult, lCreate
  38.     lResult = RegSetValueEx(phkResult, sSetValue, 0, REG_SZ, sValue, CLng(Len(sValue) + 1))
  39.     RegCloseKey phkResult
  40.     bSetRegValue = (lResult = ERROR_SUCCESS)
  41.     
  42. End Function
  43. Public Function bGetRegValue(ByVal hKey As Long, ByVal sKey As String, ByVal sSubKey As String) As String
  44.     
  45.     Dim lResult As Long
  46.     Dim phkResult As Long
  47.     Dim dWReserved As Long
  48.     Dim szBuffer As String
  49.     Dim lBuffSize As Long
  50.     Dim szBuffer2 As String
  51.     Dim lBuffSize2 As Long
  52.     Dim lIndex As Long
  53.     Dim lType As Long
  54.     Dim sCompKey As String
  55.     
  56.     lIndex = 0
  57.     lResult = RegOpenKeyEx(hKey, sKey, 0, 1, phkResult)
  58.     Do While lResult = ERROR_SUCCESS And Not (bFound)
  59.         szBuffer = Space(255)
  60.         lBuffSize = Len(szBuffer)
  61.         szBuffer2 = Space(255)
  62.         lBuffSize2 = Len(szBuffer2)
  63.         lResult = RegEnumValue(phkResult, lIndex, szBuffer, lBuffSize, dWReserved, lType, szBuffer2, lBuffSize2)
  64.         If (lResult = ERROR_SUCCESS) Then
  65.             sCompKey = Left(szBuffer, lBuffSize)
  66.             If (sCompKey = sSubKey) Then
  67.                 bGetRegValue = Left(szBuffer2, lBuffSize2 - 1)
  68.             End If
  69.         End If
  70.         lIndex = lIndex + 1
  71.         
  72.     Loop
  73.     RegCloseKey phkResult
  74. End Function
  75. Public Function bIndexReg(ByVal hKey As Long, ByVal sKey As String, lstBox As ListBox, val As String) As String
  76.     
  77.     Dim lResult As Long
  78.     Dim phkResult As Long
  79.     Dim dWReserved As Long
  80.     Dim szBuffer As String
  81.     Dim lBuffSize As Long
  82.     Dim szBuffer2 As String
  83.     Dim lBuffSize2 As Long
  84.     Dim lIndex As Long
  85.     Dim lType As Long
  86.     Dim sCompKey As String
  87.     Dim i As Long
  88.     Dim r_List
  89.     
  90.     lIndex = 0
  91.     lResult = RegOpenKeyEx(hKey, sKey, 0, 1, phkResult)
  92.     Do While lResult = ERROR_SUCCESS And Not (bFound)
  93.         szBuffer = Space(255)
  94.         lBuffSize = Len(szBuffer)
  95.         szBuffer2 = Space(255)
  96.         lBuffSize2 = Len(szBuffer2)
  97.         lResult = RegEnumValue(phkResult, lIndex, szBuffer, lBuffSize, dWReserved, lType, szBuffer2, lBuffSize2)
  98.         If (lResult = ERROR_SUCCESS) Then
  99.             sCompKey = Left(szBuffer, lBuffSize)
  100.             If Left(szBuffer2, lBuffSize2 - 1) = val Then
  101.                 lstBox.AddItem sCompKey
  102.             
  103.             End If
  104.         End If
  105.         lIndex = lIndex + 1
  106.         
  107.     Loop
  108.     RegCloseKey phkResult
  109. End Function
  110. Function DelSetting(hKey As Long, strPath As String, strValue As String)
  111.     Dim Ret
  112.     'Create a new key
  113.     RegCreateKey hKey, strPath, Ret
  114.     'Delete the key's value
  115.     RegDeleteValue Ret, strValue
  116.     'close the key
  117.     RegCloseKey Ret
  118. End Function