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.
Powerpoint listener für Präsentationsmodus
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.
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.
VBA kann “alles” AFAIK. Du könntest also zb ein web request oder einen anderen IPC Mechanismus nutzen.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?
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.
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.
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()