我想使用VB6检测Adobe Reader是否已安装。如果检测到未安装,最好的解决方案是什么?
我想使用VB6检测Adobe Reader是否已安装。如果检测到未安装,最好的解决方案是什么?
访问"HKEY_LOCAL_MACHINE\SOFTWARE\Adobe\Acrobat Reader"并枚举其子键。通过这种方式,您可以获取计算机上存在的“Adobe Reader”(以前称为“Acrobat Reader”)安装的版本号。
您还可以查看http://pdftohtml.sourceforge.net/ 如果找不到能够解析pdf文件的应用程序,则可以将其转换为html并使用大多数操作系统上可用的Web浏览器访问它。
有一些粗糙的方法(检查Program Files目录中的文件),但我建议您声明完整的注册表函数(而不是从vb获取设置),如http://www.windowsdevcenter.com/pub/a/windows/2004/06/15/VB_Registry_Keys.html并提取。
HKEY_CLASSES_ROOT\.pdf
如果有这样的东西,那么就有能够读取pdf文件的工具(这正是你想要的,对吗?)。我会进行检查
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\
浏览该列表将提供您安装的所有程序。通常查找特定于应用程序的注册表项可以起作用,但有时在卸载应用程序时,它们会被遗留下来。
类根适用于显示是否安装了任何 PDF 阅读器。
此外,如果您只想使用默认应用程序来处理 PDF,可以使用以下方法。(这是 VBScript,但在 VB6 上应该可以同样使用)
File = <PDF FILE HERE>
Set WshShell = CreateObject("WScript.Shell")
WshShell.Run Chr(34) & File & Chr(34)
回复评论
在vb6中访问注册表有几种方法,RegRead是其中之一。WMI是另一种方式。我会使用WMI,因为你可以轻松枚举子键。
读取HKEY_CLASSES_ROOT没有问题,但如果你只是要启动默认的pdf处理程序,为什么不使用上面的WshShell.Run命令直接运行它呢?这样做可以少一步操作,实现相同的效果。