Einzelnen Beitrag anzeigen

CalganX

Registriert seit: 21. Jul 2002
Ort: Bonn
5.403 Beiträge
 
Turbo Delphi für Win32
 
#1

Prüfen ob MSXML installiert ist

  Alt 26. Dez 2003, 14:05
Die folgende Funktion hat MathiasSimmack in dem Beitrag Multi-Projekt-Organizer (kurz MPO) veröffentlicht.

Die Funktion überprüft das System, ob MS XML 4.0 installiert wurde.

Delphi-Quellcode:
function DoesXMLExist: boolean;

  function ExpandEnvStr(const szInput: string): string;
  const
    MAXSIZE = 32768;
  begin
    SetLength(Result,MAXSIZE);
    SetLength(Result,ExpandEnvironmentStrings(pchar(szInput),
      @Result[1],length(Result)));
  end;

var
  reg : TRegistry;
  s : string;
begin
  Result := false;

  reg := TRegistry.Create(KEY_READ);
  if(reg <> nil) then
    with reg do try
      RootKey := HKEY_CLASSES_ROOT;

      if(OpenKey('CLSID\' + GuidToString(CLASS_DOMDocument40) +
        '\InProcServer32',false)) then
      try
        s := ReadString('');
        Result := fileexists(ExpandEnvStr(s));
      finally
        CloseKey;
      end;
    finally
      Free;
    end;
end;
Die Funktion sollte im Projektquelltext (*.dpr) stehen und vor dem Initialisieren der Forms aufgerufen werden. Auf die Weise wird die Prüfung bereits wirksam, noch bevor überhaupt irgendein Fenster des Programms erstellt wird bzw. erscheint .
Delphi-Quellcode:
uses
  {...},
  Registry,
  Windows,
  SysUtils,
  MSXML4_TLB, // die TLB von MSXML u.U. auch MSXML2_TLB
  Dialogs;

{...}

begin
  if (not DoesXMLExist) then begin
    MessageDlg('XML 4.0 muss installiert sein, damit Sie das Programm starten können.', mtError, [mbOK], 0);
    Exit;
  end;

  Application.Initialize;
  Application.Title := 'MPMS';
  Application.CreateForm(TfrmMain, frmMain);
  Application.Run;
end.
© 2003 by Mathias Simmack und Christopher "Chakotay1308" Harms
  Mit Zitat antworten Zitat