Powerpoint listener für Präsentationsmodus

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Rene1303
User
Beiträge: 22
Registriert: Montag 21. Februar 2022, 12:50

Hallo zusammen,

Ich habe unzählige Webseiten durchgemacht, aber bin nicht auf das gewünschte Ergebnis gekommen.
Ich würde gern ein Event aus Powerpoint abgreifen und zwar, wenn eine Präsentation läuft. Hier soll immer beim erreichen der letzten Folie in der laufenden Präsentation ein Event auslösen. Die Präsentation wird in einer Dauerschleife laufen. Sobald dann beim neuen Beginn der Präsentation und folglich das erreichen der letzten Folie angelangt, soll erneut ein Event ausgelöst werden.

Hat jemand eine Idee wie ich sowas realisieren kann / lässt?

Vielen Dank für eure Unterstützung.
Sirius3
User
Beiträge: 18279
Registriert: Sonntag 21. Oktober 2012, 17:20

Warum muss das PowerPoint sein? Wenn es auch PDF sein kann, wird die ganze Sache wahrscheinlich einfacher.
Rene1303
User
Beiträge: 22
Registriert: Montag 21. Februar 2022, 12:50

Es ist so, dass die Powerpoint ja gewisse Effekte beim Slidewechsel hat und es auch mal eine andere Präsentation sein kann. So muss nicht erst noch alles extra abgespeichert werden. Daher wollte ich das direkt beim Ausführen der Präsentation haben.
Rene1303
User
Beiträge: 22
Registriert: Montag 21. Februar 2022, 12:50

Was ich mir auch schon überlegt hatte, ist die Präsentation als reine Bildschirmpräsentation zu speichern und dann mit Modul os oder subprocess zu starten. Nur dann ist dies zwar gestartet, aber ich bräuchte ja noch das Event beim erreichen der letzten Folie und müsste dann die Bildschirmpräsentation schließen und nachher erneut öffnen. Da die Bildschirmpräsentation mir ja kein Event liefern kann, denke ich zumindest und ich auch nicht die genaue Dauer immer kenne, ist ja von der Anzahl der Folien abhängig. Komme ich hier mit meinen Gedanken nicht weiter.
__deets__
User
Beiträge: 14545
Registriert: Mittwoch 14. Oktober 2015, 14:29

PowerPoint kann VBA Basic. Wenn es eh immer die gleiche Präsentation ist, kann man damit doch einfach ein Event erzeugen.
Rene1303
User
Beiträge: 22
Registriert: Montag 21. Februar 2022, 12:50

Kann man dieses VBA Event auch mit an python übergeben oder kann python das dann abgreifen?
Sirius3
User
Beiträge: 18279
Registriert: Sonntag 21. Oktober 2012, 17:20

Powerpoint kann man auch per DCOM steuern, aber die Dokumentation dazu ist furchtbar schlecht. Da mußt Du Dich selbst per trial-and-error durcharbeiten.
__deets__
User
Beiträge: 14545
Registriert: Mittwoch 14. Oktober 2015, 14:29

Rene1303 hat geschrieben: Samstag 20. August 2022, 13:22 Kann man dieses VBA Event auch mit an python übergeben oder kann python das dann abgreifen?
VBA kann “alles” AFAIK. Du könntest also zb ein web request oder einen anderen IPC Mechanismus nutzen.
Sirius3
User
Beiträge: 18279
Registriert: Sonntag 21. Oktober 2012, 17:20

Kein Grund, sich mit VBA rumzuschlagen. Wie schon geschrieben, kann man Powerpoint direkt aus Python heraus per pywin32 bedienen: https://medium.com/@chasekidder/control ... f6f6bf3f2d
Somit kann man natürlich auch bis zur letzten Seite vorgehen (https://docs.microsoft.com/en-us/office ... wview.next) und dann am Ende irgendwas machen.
Sirius3
User
Beiträge: 18279
Registriert: Sonntag 21. Oktober 2012, 17:20

Hier mal das Ganze als Beispiel-Code:

Code: Alles auswählen

import win32com.client
powerpoint = win32com.client.Dispatch('PowerPoint.Application')
presentation = powerpoint.Presentations.Open(r'C:\...\presentation.pptx')
view = presentation.SlideShowSettings.Run().View
while view.State == 1:
    view.Next()
view.Exit()
presentation.Close()
Antworten