Einzelnen Beitrag anzeigen

Benutzerbild von sx2008
sx2008

Registriert seit: 16. Feb 2008
Ort: Baden-Württemberg
2.332 Beiträge
 
Delphi 2007 Professional
 
#19

Re: Herausfinden, welche Excelversion genutzt werden kann

  Alt 15. Aug 2009, 14:07
Zitat von RWarnecke:
warum gehst Du nicht über die Registry ?
Die Funktion CLSIDFromProgID() geht auch über die Registry.
Allerdings ist die Registry eine Abstraktionsebene tiefer.
Es ist softwaretechnisch eine Ungeschicktheit eine tiefere Abstraktionsebene als nötig zu wählen.
Man möchte ja nicht wissen, was in der Registry steht, sondern welche COM-Klassen zur Verfügung stehen.

Delphi-Quellcode:
function ClassIDExists(classID:WideString):Boolean;
var
  tmp : TGUID;
begin
  Result := Succeeded(CLSIDFromProgID(PWideChar(classID), tmp));
end;

function GibExcelVersion : TExcelVersion;
begin
  // zuerst prüfen, ob Excel 2007 vorhanden - Reihenfolge ist wichtig
  if ClassIDExists('Excel.Application.12') then
    Result := ev2007;
  else if ClassIDExists('Excel.Application.11') then
    Result := ev2003
  else
    Result := evKeine;
end;
fork me on Github
  Mit Zitat antworten Zitat