我有一个应用程序,取决于MSXML6,在大多数机器中,当应用程序部署时,这个包已经安装,但在少数情况下MSXML6没有安装,问题是我如何检查MSXML 6已经安装?如何确定MSXML6是否安装在使用delphi的系统中?
3
A
回答
6
如果CLSID在使用CLSIDFromProgID功能存在于注册表中,您可以检查,对MSXML的CLSID是Msxml2.DOMDocument.6.0
入住此示例应用程序
uses
ActiveX,
SysUtils;
{
Msxml2.DOMDocument.2.6
Msxml2.DOMDocument.3.0
Msxml2.DOMDocument.4.0
Msxml2.DOMDocument.5.0
Msxml2.DOMDocument.6.0
}
var
clsid: TCLSID;
begin
try
if Succeeded(CLSIDFromProgID('Msxml2.DOMDocument.6.0', clsid)) then
Writeln('MSXML 6.0 Installed')
else
Writeln('MSXML 6.0 Not Installed');
except
on E: Exception do
Writeln(E.ClassName, ': ', E.Message);
end;
Readln;
end.
+2
这只会告诉你,如果CLSID存在于注册表中,而不是MSXML本身是否实际运行正常。要做到这一点,你必须通过'CoCreateInstance()'实例化它。 – 2012-03-23 22:24:20
+1
@RemyLebeau,的确,OP可以将一个调用添加到'CoCreateInstance'函数中。 – RRUZ 2012-03-24 00:37:34
相关问题
- 1. 如何确定java是否通过python安装在系统上?
- 2. 如何使用delphi在msxml6中访问complextype中的粒子?
- 3. 确定是否使用Install4j安装JRE
- 4. Delphi 2007帮助系统安装“错误”
- 5. 如何检查Java是否安装在我的Windows系统上?
- 6. 如何检查特定库是否安装在我的系统中?
- 7. 如何检查outlook是否在系统中安装或不使用java?
- 8. 如何检测Windows系统中是否安装了DDS?
- 9. 如何知道系统中是否安装了宝石?
- 10. 如何确定是否使用jquery在系统上安装了Microsoft Excel或Open Office
- 11. 如何在Linux系统中安装tcl
- 12. 如何查找是否安装了打印机(使用Delphi)
- 13. 如何检查是否安装我的系统
- 14. 如何在iPhone中使用已安装的GPS系统
- 15. 如何确定操作系统是否为C中的POSIX?
- 16. 确定文件系统是否安装的最佳POSIX方法只读
- 17. 如何确定用户是否被重新安装在Android
- 18. 如何确定软件包是否安装在elisp中?
- 19. 是否可以为整个系统使用单个RVM安装?
- 20. Makefile:从CLI或包装系统安装目标是否可用?
- 21. 写检查包装是否已经安装在R系统
- 22. django项目如何检测系统是否安装了django?
- 23. 如何检查Windows系统上是否安装了程序
- 24. 确定系统是否使用大端或小端使用C
- 25. 如何检查64位版本的Flash Player 10.2.161.23是否安装在系统中或不安装在C#中?
- 26. 如何确定Python是否可用于HPUX系统?
- 27. 如何使用coldfusion检查系统上是否安装了程序
- 28. 确定是否x86或x64系统
- 29. 确定操作系统是否为Mac
- 30. 如何查找给定软件是否已安装,以及是否未安装如何使用PowerShell安装它?
我认为最可靠的方法就是*尝试*创建ole对象。 – kobik 2012-03-23 22:00:28