AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi [FEHLER] PowerPoint mit Delphi ansteuern
Thema durchsuchen
Ansicht
Themen-Optionen

[FEHLER] PowerPoint mit Delphi ansteuern

Ein Thema von T3rm1 · begonnen am 9. Mär 2009 · letzter Beitrag vom 18. Apr 2024
Antwort Antwort
Seite 2 von 2     12   
Benutzerbild von Jens Schumann
Jens Schumann

Registriert seit: 27. Apr 2003
Ort: Bad Honnef
1.644 Beiträge
 
Delphi 2009 Professional
 
#11

Re: [FEHLER] PowerPoint mit Delphi ansteuern

  Alt 9. Mär 2009, 19:16
Hallo,
ich bin mir nicht sicher ob der Hinweis hier passt.
Aber Versuch macht klug. Vor einigen Jahren konnte ich Excel ansprechen, aber nicht Word.
Das lag an einer Einstellung in der Registry. Leider lässt mich meine Erinnerung ziemlich im Stich.
Es lag an dem Anti-Virus PlugIn für Office. MS-Support
Damals hatte ich kein Norton, aber trotzdem Probleme. Das Anti-Virus PlugIn ließ sich in
der Registry deaktivieren (weiß aber nicht mehr wo). Damit war das Problem gelöst.
Evt. gibt es ja ähnliche Probleme mit O2k7.
I come from outer space to save the human race
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.171 Beiträge
 
Delphi 10.4 Sydney
 
#12

Re: [FEHLER] PowerPoint mit Delphi ansteuern

  Alt 9. Mär 2009, 19:35
Falls du ein altes Office drauf hattest ist es fast schon Normal das Updates *irgendwelche* Problem bereiten. Besser ist es erst alles zu deinstallieren (evtl. Registry putzen) und dann alles neu zu installiern. Auf keinen Fall eine Parallelinstallation von alten Office übrig lassen.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
T3rm1

Registriert seit: 22. Jan 2007
8 Beiträge
 
Delphi 2009 Professional
 
#13

Re: [FEHLER] PowerPoint mit Delphi ansteuern

  Alt 9. Mär 2009, 23:54
Office neu installiert. Funktioniert alles!
  Mit Zitat antworten Zitat
berens

Registriert seit: 3. Sep 2004
431 Beiträge
 
Delphi 2010 Professional
 
#14

AW: [FEHLER] PowerPoint mit Delphi ansteuern

  Alt 18. Apr 2024, 14:54
Werte Kollegen, bitte verzeiht mir, dass ich dieses uralte Thema ausgrabe.
Aufgrund eines aktuellen Datenschutzvorfalls möchte ich alle Leser auf folgendes Problem hinweisen:

TL;DR: Wenn der Kunde vor Programmstart bereits PowerPoint offen hat, exportiert + zerstört die Prozedur von OP *diese* Präsentation (falls nicht gespeichert), statt die mit dem Dateinamen übergebene Präsentation umzuwandeln!

In Länge:
Ich wollte solche Probleme bereits im Vorfeld vermeiden und habe immer mit einer leeren PowerPoint-Instanz mit "PowerPoint := CoPowerPointApplication.Create" gearbeitet, statt mich auf die bestehende PowerPoint-Instanz "draufzuschalten". (Spoiler: Nein, sie ist nicht leer!)

Aber auch wenn die von OP beschriebene Ermittlung (AppWasRunning) weggelassen wird, ob eine PowerPoint-Instanz bereits läuft oder nicht, wird mit "PowerPoint := CoPowerPointApplication.Create;" KEINE neue PowerPoint-Instanz erzeugt, FALLS bereits PowerPoint mit einer anderen Datei geöffnet ist. Das PowerPoint-Handle zeigt stattdessen auf die bereits geöffnete Instanz.

Im vorliegenden Fall verwendet OP (wissentlich) die bestehende Instanz von PowerPoint, falls diese bereits geöffnet war.
Ich habe sie unwissentlich/unfreiwillig verwendet, wegen: siehe Oben.

Daraus resultiert:
1) In der Prozedur von OP wird die in PowerPoint bereits vor Programmstart geöffnete Präsentation nun als Bild gespeichert. NICHT die Präsentation, die über Open() geöffnet wird. (Die Zufälligerweise-bei-Programmstart-geöffnete-PowerPoint mit sensiblen Daten wird als Bild gespeichert und weiterverarbeitet, nicht die mit "Path" übergebene! --> PowerPoint.Presentations.Item(1) = schon offene PowerPoint, Item(2) wäre die eben von uns geöffnete!
2) Nach der Umwandlung in ein Bild wird die "erste" PowerPoint-Präsentation (ohne Speichern) geschlossen: PowerPoint.Presentations.Item(1).Close . Evtl. hat der Benutzer schon den ganzen Tag an der Präsentation gearbeitet ohne zu Speichern, will kurz in deinem Programm was machen und dann wird ihm die Präsentation kommentarlos zugemacht.

Keine Anschuldigung, keine Beschwerde! Ich arbeite ja auch mit dem Code, und bin dankbar für die Mitarbeit in der Community, und mir ist es ja auch vorher nicht aufgefallen.

Mein Lösungsvorschlag, bitte korrigiert ihr mich hier gerne:
Bei "Open()" erhält man das Handle/Interface/was-auch-immer auf die eben geöffnete PowerPoint-Datei (hier die Variable "SelectedPresentation", nehmt gerne einen sinnvolleren Namen). Nur damit arbeiten!

Delphi-Quellcode:
function ConvertPowerPoint(var _FileName: String; _RootFolder: string; _SubFolder: string; _ForceSubdirectory: Boolean = False): Boolean;
const
  P = 'ConvertPowerPoint';
var
  PowerPoint: PowerPointApplication;
  AppWasRunning: Boolean;
  OleResult: HRESULT;
  Unknown: IUnknown;
  SelectedPresentation: _Presentation;
begin
  Result := False;
  try
    // ...

    AppWasRunning := False;
    OleResult := GetActiveObject(CLASS_PowerPointApplication, nil, Unknown);
    if (OleResult = MK_E_UNAVAILABLE) then begin
      PowerPoint := CoPowerPointApplication.Create;
    end else begin
      OleCheck(OleResult);
      OleCheck(Unknown.QueryInterface(PowerPointApplication, PowerPoint));
      AppWasRunning := True;
    end;

    if assigned(PowerPoint) then begin
      try
        SelectedPresentation := PowerPoint.Presentations.Open(_FileName, msoTrue, msoFalse, msoFalse);
        if SelectedPresentation <> NIL then begin
          try
            // ...
            SelectedPresentation.Export(TargetFolder, 'png', w, h);
          finally
            SelectedPresentation.Close;
          end;
        end;
      finally
        if not AppWasRunning then PowerPoint.Quit;
      end;
    end else begin
      LogP(M, P, 'Unable to connect to PowerPoint!', '', ws_SEVERITY_FAILED);
    end;
Vielen Dank für eure Aufmerksamkeit!
Delphi 10.4 32-Bit auf Windows 10 Pro 64-Bit, ehem. Delphi 2010 32-Bit auf Windows 10 Pro 64-Bit
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


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 20:49 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