![]() |
Prüfen, ob PowerPoint >= XP installiert ist
Moin zusammen,
wie der Titel ja eigentlich schon sagt, will ich von Delphi aus definitiv feststellen, welche PowerPoint Version unter Windows installiert ist, um entweder meine Präsentation abzuspielen, wenn PowerPoint XP oder besser installiert ist, oder die Installation des PowerPoint Viewers anzubieten. Mein Problem ist aber, dass ich nichts finde, wie ich das prüfen kann. Hat da jemand eine Idee?? schon mal vielen Dank für die hoffentlich vielen guten Ideen ;-) Gruß Malte |
Re: Prüfen, ob PowerPoint >= XP installiert ist
Ich würde es so machen
Delphi-Quellcode:
Edit: ups zu spät gelesen das du die Version brauchst.
{
uses ComObj } function IsPowerPointInstalled: Boolean; begin Result := not VarIsEmpty(CreateOleObject('PowerPoint.Application')); end; |
Re: Prüfen, ob PowerPoint >= XP installiert ist
Ahoi :)
Ich vermute mal du hast Powerpoint installiert? Wenn ja: Die meissten "großen" kommerziellen Programme schreiben Versionsinfos, Installationspfad und Installationsdaten in die Registry, guck dich mal in "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\..." nach nem Key wie "Powerpoint" oder "MSOffice" um oder benutze die Suchfunktion des Registry-Editors deines Vertrauens ;) Wenn sich da nichts brauchbares draus machen lässt kannst du über die Dateigröße der PPoint.exe (Heisst doch immernoch so, oder? :gruebel: ) gehen, die wird sich sicherlich von der anderer Versionen unterscheiden.. |
Re: Prüfen, ob PowerPoint >= XP installiert ist
Schau in der Registry nach. Da ich nur Office 2000 besitze, kann ich es dir nur für selbiges definitiv sagen, aber dort findet man einen entsprechenden Eintrag unter HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\x.0\P owerPoint, der auch für die übrigen PowerPoint-Versionen verfügbar sein dürfte. Die Versionsnummern sind wie folgt:
Office 2000: v9.0 Office XP/2002: v10.0 Office 2003: v11.0 Office 2007: v12.0 Ob PowerPoint dann auch wirklich installiert ist, dürftest du mit der Methode meines Vorredners herausfinden können. |
Re: Prüfen, ob PowerPoint >= XP installiert ist
Delphi-Quellcode:
Für die Funktion ProgIDExists siehe:
function IsPowerPoint11Installed: Boolean;
begin Result := ProgIDExists('PowerPoint.Application.11'); end; ![]() |
Re: Prüfen, ob PowerPoint >= XP installiert ist
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:
@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 :?
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; Gruß Malte |
Re: Prüfen, ob PowerPoint >= XP installiert ist
Moin,
toll - zu früh gefreut :wall: Mit ein bisschen denken hätte ich auch vorher auf den Gedanken kommen können, dass man kein OleObject eines PowerPoint Viewers erzeugen kann. D. h. ich kann nun zwar prüfen, ob ein echtes PowerPoint installiert ist, aber nachdem ich meinen Viewer installiert habe, will mein Programm jedesmal wieder den Viewer installieren, weil es den nicht erkennt.... An der Stelle versagt dann leider auch shmias Vorschlag und als Registry-Eintrag kommen nur die Schlüssel "Common" und "User Settings" unter "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\12.0 \" (PowerPoint Viewer 2007) hinzu, die nicht auf PowerPoint hindeuten. Gruß Malte |
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:55 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