Skript

FiiireFox

Cadet 4th Year
Registriert
Okt. 2013
Beiträge
92
Hallo,

bin gerade dran mir ein Skript zu erstellen welches eine PowerPoint öffnet. Die PowerPoint soll dann nach gewisser Zeit Z.B. 2h wieder beendet werden. Habe mit Power Shell angefangen allerdings lasse ich mir auch gerne Tipps geben wie man es anders Lösen kann. Er öffnet mir meine PowerPoint auch allerdings kann er sie dann nicht mehr schließen.

Hier mein Quellcode:

start C:\Users\123\Präsentationen\2010-03_R123_Präsentation.ppsx
Sleep 500
kill C:\Users\123\Präsentationen\2010-03_123_Präsentation.ppsx
 
du musst schon ne Prozess id oder so killen.. das was du da machst ist eher ein "kill meine Datei"..^^ nur so als Denkansatz.. wies genau geht, weiß ich spontan auch nicht, aber die powershell ist ziemlich gut dokumentiert.
 
Du kannst ja nicht Dateien beenden, sondern nur Prozesse. Du musst also während oder nach dem Starten von PP die Prozessid herausfinden. Über die kannst du die Präsentation dann wieder schließen. Wie das unter Windows geht weiß ich aber nicht.

PS: Wenn das die einzige PP-Instanz ist kann es evtl auch über den Namen killen.
 
Code:
taskkill /IM Powerpoint.exe

​so war das zumindest unter XP, aber ich glaube nicht das sich da viel geändert hat.

Ansonsten hilft
Code:
taskkill /?
auch weiter denke ich.

Das wäre jedenfalls das einfachste, allerdings bin ich mir nicht sicher ob er nach

Code:
start C:\Users\123\Präsentationen\2010-03_R123_Präsentation.ppsx
Auch das Sleep ausführt, in der Batch ist es im Normalfall so, dass er den nächsten Befehl erst ausführt wenn der erste fertig ist und fertig ist in diesem Fall wenn PP beendet wird - musst du mal testen, weiß nicht wie sich die Powershell da verhält.
 
Wenn die PowerPoint läuft kann ich die ID über den Task-Manager auslesen eine neue Power Shell öffnen und dann die PowerPoint schließen mit der ID. Allerdings soll das Programm das von selbst machen. Oder gibt es eine einfachere Möglichkeit benötige dringend Hilfe.
 
du kannst es von der powershell starten und via VBA script IN POWERPOINT schließen lassen.
Allerdings bin ich da nicht sonderlich bewandert, schwer ist vba aber nicht.

hier ein script das die slideshow startet und dann PP schließt. Wenn du die Zeile

Code:
ppP.SlideShowSettings.RUN

gegen einen Sleep Timer tauschst hast du dein Ergebnis, nur kenne ich den befehl davon nicht.
​Aber das sind schonmal 90% der Arbeit nehme ich an.

€dit: versuch mal das hier (keine Garantie, kann es hier nicht testen.)

Code:
StandardModule: Modul1

Private Declare Sub Sleep Lib "kernel32"

Sub PowerPointStarten()
   Dim ppApp As Object
   Dim ppP As Object
   Dim sFile As String
   sFile = ThisWorkbook.Path & "\Powerpoint_Date.pptx"
   If Dir(sFile) = "" Then
      Beep
      MsgBox "Die Datei " & sFile & " existiert nicht!"
      Exit Sub
   End If
   Set ppApp = CreateObject("PowerPoint.Application")
   ppApp.Visible = msoTrue
   Set ppP = ppApp.Presentations.Open(sFile)
   sleep 7200000
   ppApp.Quit
   Set ppP = Nothing
   Set ppApp = Nothing
End Sub


Das wartet dann (theoretisch) 2h - 7200000, weil in Millisekunden gezählt wird.
 
Zuletzt bearbeitet:
War es nicht so, dass sleep die gesamte UI blockiert und nach ein paar Sekunden sieht es so aus, als ob PowerPoint abgestürzt wäre?
 
Hallo,

funktioniert noch immer nicht. Hat keiner eine einfachere Lösung bin wie gesagt kein Profi.
 
Zurück
Oben