![]() |
MSXML-Version auslesen, wenn überhaupt installiert
Hallo Wissende,
wie kann man prüfen, ob MSXML beim Kunden installiert ist? Also per Code. Und falls es installiert ist, wie bekommt man die Version heraus? |
Re: MSXML-Version auslesen, wenn überhaupt installiert
Einfach ein interface per CoCreate anfordern und fehler pre try ... except abfangen. Installiert heißt bei COM nicht unbedingt das es auch funktionsfähig ist (DLL-Hölle).
|
Re: MSXML-Version auslesen, wenn überhaupt installiert
hoi,
könnte es sein (du kannst es ja bei dir prüfen) das du es 'ganz einfach' über die registry bekommst ? HKLM\Software\Microsoft\ Wenn der Unterordner 'MSXMLxxx' existiert hat er es installiert und die xxx geben die Version. Bei mir steht MSXML60 - ich hätte gedacht Version 6.0 ! cya |
Re: MSXML-Version auslesen, wenn überhaupt installiert
Hallo,
da ich weiß, um was es geht, schau doch mal in die Unit "XMLHelp" meines ![]() Gruß xaromz |
Re: MSXML-Version auslesen, wenn überhaupt installiert
Da hat doch wirklich der richtige geantwortet. Prima und danke!
Habe es jetzt erstmal nur zum Testen so gelöst, falls noch jemand an einer Lösung interessiert ist:
Delphi-Quellcode:
Und in den Uses XMLHelp nicht vergessen.
if not(xmlhelp.IsMSXML6Installed) then
MessageDlg('Auf Ihrem System ist leider kein MSXML 6 installiert.',mtError,[mbOK],0) else MessageDlg('Auf Ihrem System ist MSXML 6 installiert.',mtInformation,[mbOK],0); Schlecht wäre aber eine Funktion mit Rückgabe der Version nicht... |
Re: MSXML-Version auslesen, wenn überhaupt installiert
Hallo,
Zitat:
Delphi-Quellcode:
Gruß
function MSXMLVersion: Integer;
var XML: IXMLDOMDocument; begin Result := 0; try XML := CoDOMDocument60.Create; if Assigned(XML) then Result := 6; except try XML := CoDOMDocument40.Create; if Assigned(XML) then Result := 4; except end; end; end; xaromz |
Re: MSXML-Version auslesen, wenn überhaupt installiert
Danke Dir, werde es ändern...
|
Re: MSXML-Version auslesen, wenn überhaupt installiert
Mit folgender Funktion geht das etwas eleganter:
Delphi-Quellcode:
Damit wird kein Objekt erzeugt, dass man dann trotzdem nicht haben möchte.
function ProgIDExists(const ProgID:WideString):Boolean;
var tmp : TGUID; begin Result := Succeeded(CLSIDFromProgID(PWideChar(ProgID), tmp)); end; Letztendlich macht CLSIDFromProgID nichts anderes, als in die Registry zu schauen; aber eben auf dem offiziellen Weg.
Delphi-Quellcode:
Zu den ProgIDs siehe: http://msdn.microsoft.com/en-us/library/ms757837(VS.85).aspx
if ProgIDExists('Msxml2.DOMDocument.6.0') then
result := 6 else if ProgIDExists('Msxml2.DOMDocument.5.0') then ... |
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:14 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz