Einzelnen Beitrag anzeigen

Benutzerbild von stz
stz

Registriert seit: 8. Sep 2005
Ort: Neuendeich, Lübeck
277 Beiträge
 
Turbo Delphi für Win32
 
#6

Re: Prüfen, ob PowerPoint >= XP installiert ist

  Alt 6. Feb 2007, 21:17
Moin,
erstmal schönen Dank für die vielen Vorschläge.
@ErazerZ: Das macht IMHO wenig Sinn, da Delphi eine Exception feuert, wenn das Erzeugen des Objektes schiefgeht. VarIsEmpty wird dann also gar nicht mehr ausgeführt.
Ole war trotzdem ein gutes Stichwort. Ich hab mir nun folgende Funktion zusammengestrickt:
Delphi-Quellcode:
uses ComObj, Variants;
function GetPowerPointVersion: Integer;
{Rueckgabewerte:
-1 = kein PowerPoint installiert
0  = PowerPoint installiert, aber Versionsabfrage gescheitert
>0 = PowerPoint-Version}

var
  PowerPoint: OleVariant;
  VersionStr: String;
  Status: Integer;
begin
  try
    PowerPoint := GetActiveOleObject('PowerPoint.Application');
    Status := 2;
  except
    try
      PowerPoint := CreateOleObject('PowerPoint.Application');
      Status := 1;
    except
      Status := 0;
    end;
  end;
  if Status > 0 then
  begin
    try
      VersionStr := PowerPoint.Version;
      Result := StrToInt(Copy(VersionStr, 1, Pos('.', VersionStr) - 1));
    except
      Result := 0;
    end;
    if Status = 1 then
      PowerPoint.Quit;
    PowerPoint := Unassigned;
  end
  else
    Result := -1;
end;
@shmia: Deine Lösung ist zwar eleganter, aber ich muss halt nur wissen, ob PowerPoint XP oder besser installiert ist, und wenn ich auf Version 10, 11, 12 und 13 prüfe, kommt irgendwann Version 14 heraus und ich hab sie nicht mehr drin

Gruß
Malte
Malte Schmitz
Der Unterschied zwischen Theorie und Praxis ist in der Praxis größer als in der Theorie.

Entwickler des HTML-Editors MEdit (DP)
  Mit Zitat antworten Zitat