ACCESS讀寫註冊錶信息

2017-11-13 12:25:00
cg1
轉貼
1156

在Access應用程序中,我們有時需要對註冊錶做一些更改以更好地展示Access的用戶體驗。

如何對註冊錶進行修改呢?這裡列舉3種方法。

方法一:

直接將要修改的鍵值保存爲一箇 *.reg 文件,用註冊錶編輯器導齣某一鍵值就可以自動生成對應的 *.REG 文件。然後用 shell 去運行 regedit /s c:\a.reg 卽可。如:Shell "regedit /s c:\c.reg"

方法二:

使用 WSH 的 RegRead、RegWrite方法來讀寫

必鬚先引用:菜單 -> 工具 -> 引用 中去引用如下類庫:Windows Script Host Object Model

Function SetTypeAQuestionForHelpBox()
'    本函數調用 WSH 來修改註冊錶達到去掉 OFFICE 組件右上角提問框的目的
    On Error Resume Next
    Dim a As New WshShell
'    如果採用後引用方式,也可以寫如下代碼:
'    Set a = CreateObject("WScript.Shell")
    
'    顯示提問框,鍵入需要幫助的問題 這箇框的設置選項是在註冊錶中的一下鍵位
'    HKEY_CURRENT_USER\Software\Microsoft\Office\14.0\Common\ToolBars\Settings\Microsoft Office Access AWDropdownHidden
'    先顯示鍵的值。註意:如果你從來沒有手動設置過“顯示提問框”這箇選項就沒有以下鍵值。
'    因此以下這行會齣錯。前麵已經使用過 On Error Resume Next 可以忽略該錯誤。
'    再修改牠(或者建立該鍵,併賦值)
    a.RegWrite "HKCU\Software\Microsoft\Office\14.0\Common\ToolBars\Settings\Microsoft Office Access AWDropdownHidden", 1, "REG_DWORD"
End Function


方法三:
在VB中,我們還可以直接使用Win32SDK下相關的註冊錶API來修改和讀取註冊錶。
調用的API函數,操作註冊錶
Option Explicit
Public Const HKEY_CLASSES_ROOT = &H80000000
Public Const HKEY_CURRENT_USER = &H80000001
Public Const HKEY_LOCAL_MACHINE = &H80000002
Public Const HKEY_USERS = &H80000003
Public Const HKEY_PERFORMANCE_DATA = &H80000004
Public Const HKEY_CURRENT_CONFIG = &H80000005
Public Const HKEY_DYN_DATA = &H80000006
Declare Function RegOpenKey Lib "advapi32.dll" Alias "RegOpenKeyA" (ByVal hKey As Long, ByVal lpSubKey As String, phkResult As Long) As Long
Declare Function RegCloseKey Lib "advapi32.dll" (ByVal hKey As Long) As Long
Sub Main()
    Dim ret As Long, hKey As Long, hKey2 As Long
    ret = RegOpenKey(HKEY_LOCAL_MACHINE, "SOFTWARE\Microsoft", hKey)
    If ret = 0 Then
        MsgBox "HKLM\SOFTWARE\Microsoft = " & hKey
    End If
    ret = RegOpenKey(hKey, "Windows\CurrentVersion", hKey2)
    If ret = 0 Then
        MsgBox "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion = " & hKey2
    End If
'    Use RegCreateKey function to create subkey "HKEY_LOCAL_MACHINE\SOFTWARE\Hongqt"
    ret = RegCreateKey(HKEY_LOCAL_MACHINE, "SOFTWARE\Hongqt", hKey)
    If Not ret Then
        MsgBox "Create HKEY_LOCAL_MACHINE\SOFTWARE\Hongqt SubKey Success"
    Else
        MsgBox "Create Subkey Operation Fail"
    End If
    RegCloseKey hKey
    RegCloseKey hKey2
End Sub

分享