2012-04-04 3 views
0

Ich lade eine Powerpoint-Präsentation mit AppleScript, damit ich sie automatisch in einem anderen Format speichern kann. HierWie werden alle Popups beim Laden einer Powerpoint-Datei durch applescript ignoriert?

ist der Code:

tell application "Microsoft PowerPoint" 
    open "/Users/Me/Desktop/test.pptx" 
end tell 

set theOutputPath to "/Users/Me/Desktop/Export.pdf" 
tell application "Microsoft PowerPoint" 
    save active presentation in theOutputPath as save as PDF 
end tell 


tell application "Microsoft PowerPoint" 
    close active presentation 
end tell 

Dies funktioniert jedoch, wenn ein bestimmtes Dokument, die mit Powerpoint für Windows statt Öffnung Öffnen, Exportieren Powerpoint Schließen gibt mir ein: Pop-up

„Diese Präsentation Enthält ActiveX-Steuerelemente, die in PowerPoint nicht funktionieren Wenn Sie diese Präsentation speichern, werden die ActiveX-Steuerelemente entfernt "

Wenn ich nicht" OK "drücke passiert nichts. So kann ich nicht vollständig skipen/exportieren/schließen, da ich nach dem Laden mit der Maus auf Ok klicken muss.

Was tatsächlich passiert ist: AppleScript führt das Öffnen aus und versucht sofort das Speichern. Die Anwendung wird jedoch auf dem obigen Popup blockiert, so dass AppleScript den folgenden Fehler gibt:

Microsoft PowerPoint got an error: active presentation doesn’t understand the save message.

So schlägt die Skriptausführung fehl.

Ich suchte im Wörterbuch und ich finde nichts, um das zu lösen, noch fand ich eine Lösung in den PowerPoint-Voreinstellungen.

Weiß jemand, wie man das löst?

Antwort

1

Wenn die OK-Taste, die Standardschaltfläche ist, versuchen:

activate application "Microsoft PowerPoint" 
tell application "System Events" 
tell process "Microsoft PowerPoint" 
    keystroke return 
end tell 
end tell 

Hinweis: Sie Zugriff für Hilfsgeräte aktivieren müssen

+0

Ich habe versucht, dies aber das Ereignis geschieht schnell. Es fügt der Präsentation eine Folie hinzu. Ich denke, ich muss eine Art Verzögerung hinzufügen –

+0

Ich habe eine 30-Sekunden-Verzögerung hinzugefügt, die den Trick zu tun scheint. Vielen Dank! –

Verwandte Themen