我用如下代码读取Office2000组件Access的安装路径,代码如下:
Private Declare Function RegQueryValueEx Lib "advapi32.dll" Alias "RegQueryValueExA" (ByVal hKey As Long, ByVal lpValueName As String, ByVal lpReserved As Long, ByRef lpType As Long, ByRef lpData As Any, ByRef lpcbData As Long) As Long
Private Declare Function RegOpenKey Lib "advapi32.dll" Alias "RegOpenKeyA" (ByVal hKey As Long, ByVal lpSubKey As String, ByRef phkResult As Long) As Long
Private Declare Function RegCloseKey Lib "advapi32.dll" (ByVal hKey As Long) As Long
Private Const HKEY_LOCAL_MACHINE As Long = &H80000002Sub Main()
Dim hKey As Long, ret As Long, accessPath As String
accessPath = Space(256)
ret = RegOpenKey(HKEY_LOCAL_MACHINE, "Software\Microsoft\Office\9.0\Access\InstallRoot", hKey)
ret = RegQueryValueEx(hKey, "Path", 0, 1, ByVal accessPath, Len(accessPath))
RegCloseKey hKey
MsgBox accessPath
Msgbox accessPath & "-----"
End Sub
经测试MsgBox accessPath语句与MsgBox accessPath &"-----"语句得到的结果是accessPath与accessPath &"-----"返回值是相同的,照理是不应该的,因为后者毕竟是在前者基础上增加了"-----"几个字符,是什么原因呢?