设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

返回列表 发新帖
查看: 2511|回复: 4
打印 上一主题 下一主题

[API] 在VB中怎样判断系统中是否安装ACCESS?,

[复制链接]
1#
发表于 2008-5-30 13:08:52 | 显示全部楼层
不用creatobject的话,比较方便的就是检测注册表HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office 下的键值了
2#
发表于 2008-5-30 13:19:57 | 显示全部楼层
从别处转贴过来的,仅供参考

  1. Option Explicit

  2. Private Declare Function RegOpenKey Lib "advapi32" Alias "RegOpenKeyA" _
  3. (ByVal hKey As Long, _
  4. ByVal lpSubKey As String, _
  5. phkResult As Long) _
  6. As Long

  7. Private Declare Function RegQueryValueEx Lib "advapi32" Alias "RegQueryValueExA" _
  8. (ByVal hKey As Long, _
  9. ByVal lpValueName As String, _
  10. lpReserved As Long, _
  11. lptype As Long, _
  12. lpData As Any, _
  13. lpcbData As Long) _
  14. As Long

  15. Private Declare Function RegCloseKey& Lib "advapi32" (ByVal hKey&)

  16. Private Const REG_EXPAND_SZ = 2
  17. Private Const ERROR_SUCCESS = 0
  18. Private Const HKEY_CLASSES_ROOT = &H80000000


  19. Public Function IsAppPresent(ByVal strSubKey$) As Boolean

  20. IsAppPresent = CBool(Len(GetRegString(HKEY_CLASSES_ROOT, strSubKey)))

  21. End Function

  22. Private Sub Command1_Click()

  23. Label1.Caption = "Access : " & IsAppPresent("Access.Database\CurVer")
  24. Label2.Caption = "Excel :" & IsAppPresent("Excel.Sheet\CurVer")
  25. Label3.Caption = "PowerPoint :" & IsAppPresent("PowerPoint.Slide\CurVer")
  26. Label4.Caption = "Word :" & IsAppPresent("Word.Document\CurVer")

  27. End Sub



  28. Public Function GetRegString(ByVal hKey As Long, _
  29. ByVal strSubKey As String) As String

  30. Dim strSetting As String
  31. Dim lngDataLen As Long
  32. Dim lnghResult As Long

  33. If RegOpenKey(hKey, strSubKey, lnghResult) = ERROR_SUCCESS Then

  34. strSetting = Space$(255)
  35. lngDataLen = Len(strSetting)

  36. 'lpValueName为vbNullString只读取其默认值
  37. If RegQueryValueEx(lnghResult, vbNullString, ByVal 0, _
  38. REG_EXPAND_SZ, ByVal strSetting, lngDataLen) = ERROR_SUCCESS Then

  39. If lngDataLen > 1 Then

  40. GetRegString = Left$(strSetting, lngDataLen - 1)

  41. End If

  42. End If

  43. If RegCloseKey(lnghResult) <> ERROR_SUCCESS Then

  44. MsgBox "RegCloseKey Failed: " & strSubKey, vbCritical

  45. End If

  46. End If

  47. End Function
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-5-16 06:28 , Processed in 0.090107 second(s), 24 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表