AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Prüfen, ob PowerPoint >= XP installiert ist
Thema durchsuchen
Ansicht
Themen-Optionen

Prüfen, ob PowerPoint >= XP installiert ist

Offene Frage von "stz"
Ein Thema von stz · begonnen am 6. Feb 2007 · letzter Beitrag vom 6. Feb 2007
Antwort Antwort
Benutzerbild von stz
stz

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

Prüfen, ob PowerPoint >= XP installiert ist

  Alt 6. Feb 2007, 15:52
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
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
Benutzerbild von ErazerZ
ErazerZ

Registriert seit: 27. Mai 2005
Ort: Baden
315 Beiträge
 
Delphi 2007 Enterprise
 
#2

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

  Alt 6. Feb 2007, 16:16
Ich würde es so machen
Delphi-Quellcode:
{
  uses ComObj
}

function IsPowerPointInstalled: Boolean;
begin
  Result := not VarIsEmpty(CreateOleObject('PowerPoint.Application'));
end;
Edit: ups zu spät gelesen das du die Version brauchst.
  Mit Zitat antworten Zitat
kill -9
(Gast)

n/a Beiträge
 
#3

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

  Alt 6. Feb 2007, 16:20
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? ) gehen, die wird sich sicherlich von der anderer Versionen unterscheiden..
  Mit Zitat antworten Zitat
DMW

Registriert seit: 6. Sep 2006
Ort: Münster
269 Beiträge
 
Delphi XE Professional
 
#4

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

  Alt 6. Feb 2007, 16:27
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.
Moritz
  Mit Zitat antworten Zitat
shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#5

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

  Alt 6. Feb 2007, 16:41
Delphi-Quellcode:
function IsPowerPoint11Installed: Boolean;
begin
  Result := ProgIDExists('PowerPoint.Application.11');
end;
Für die Funktion ProgIDExists siehe: http://www.delphipraxis.net/internal...ct.php?t=82649
Andreas
  Mit Zitat antworten Zitat
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
Benutzerbild von stz
stz

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

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

  Alt 6. Feb 2007, 22:03
Moin,
toll - zu früh gefreut
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
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
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:01 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz