office交流網--QQ交流群號

Access培訓群:792054000         Excel免費交流群群:686050929          Outlook交流群:221378704    

Word交流群:218156588             PPT交流群:324131555

ACCESS讀寫注冊表信息

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

在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

分享
北京十一选五基本走势