2012-04-04 2 views
0

Я загружаю презентацию PowerPoint с помощью applescript, поэтому я могу автоматически сохранить ее в другом формате.Как игнорировать все всплывающие окна при загрузке файла powerpoint через applescript?

Вот код:

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 

Это работает, однако при открытии определенного документа, сделанный с PowerPoint для Windows, вместо открытия, экспорт, закрытие PowerPoint дает мне всплывающее окно:

«Этой презентацию содержит элементы управления ActiveX, которые не будут работать в PowerPoint. Если вы сохраните эту презентацию, элементы управления ActiveX будут удалены. «

Если я не нажму« ok », ничего не произойдет. Поэтому я не могу полностью загрузить сценарий load/export/close, так как после загрузки мне нужно щелкнуть мышью по кнопке Ok.

Что на самом деле происходит: AppleScript выполняет открытое и сразу же пытается сохранить. Однако приложение блокируются на вышеуказанном всплывающем окне так AppleScript дает следующее сообщение об ошибке:

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

Так выполнение скрипта терпит неудачу.

Я искал в словаре, и я не нашел ничего, чтобы решить эту проблему, и не нашел решения в настройках PowerPoint.

Кто-нибудь знает, как это решить?

ответ

1

Если кнопка ОК кнопка по умолчанию, попробуйте:

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

Примечание: Вы должны включить доступ для вспомогательных устройств

+0

Я попытался это, но это событие происходит быстро. Что он делает, это добавить слайд к презентации. Я думаю, что мне нужно добавить какую-то задержку. –

+0

Я добавил 30-секундную задержку, которая, похоже, делает трюк. Благодаря! –

Смежные вопросы