编程论坛
注册
登录
编程论坛
→
VB6论坛
VB 检测系统office
sdgzs
发布于 2023-06-14 14:43, 838 次点击
VB 导出excel 时,系统没有安装office 程序会出现假死,怎样判断系统安装office ?
5 回复
#2
厨师王德榜
2023-06-14 15:29
oXls = CreateObject("Excel.Application") ' 看看oXls能否返回OLE对象.
#3
sdgzs
2023-06-15 06:14
oXls = CreateObject("Excel.Application") 这句在没有安装office,而装有WPS的机器上,也能返回
#4
厨师王德榜
2023-06-15 08:50
是的,WPS也能返回,能返回就行.
不必在意OLE对象是WPS还是EXCEL.
只要能返回,就能做接下来的事.
#5
sdgzs
2023-06-16 05:17
问题是 WPS 能返回,但系统不能导出数据,还造成系统假死。
#6
约定的童话
2023-06-18 12:52
通过检查注册表判断
Public Function isOfficeInstalled() As Boolean
Dim oRegKey As Object
Dim strPath As String
On Error Resume Next
' 检查 Office 2016 的注册表项
strPath = "HKLM\Software\Microsoft\Office\ClickToRun\ProductReleaseIds"
Set oRegKey = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\default:StdRegProv")
If oRegKey.EnumKey(HKEY_LOCAL_MACHINE, strPath, SubKeys) = Then
For Each subkey In SubKeys
If subkey = "Office16" Then
' Office 2016 已安装
isOfficeInstalled = True
Exit Function
End If
Next subkey
End If
' Office 2016 未安装
isOfficeInstalled = False
End Function
1