如何确定MSXML6是否安装在使用delphi的系统中?

Sal*_*dor 3 xml delphi msxml

我有一个依赖于MSXML6的应用程序,在部署应用程序的大多数机器上已安装此软件包,但在少数情况下未安装MSXML6,问题是如何检查MSXML 6是否已经安装安装?

RRU*_*RUZ 6

您可以使用CLSIDFromProgID函数检查注册表中是否存在CLSID ,对于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.
Run Code Online (Sandbox Code Playgroud)

  • 这只会告诉您注册表中是否存在CLSID,而不是MSXML本身是否实际正常运行.要做到这一点,你必须通过`CoCreateInstance()`来实例化它. (2认同)