Как узнать формат файла презентации в PowerPoint VSTO? - PullRequest
0 голосов
/ 15 апреля 2011

Я работал над некоторыми надстройками Office для Система Office 2007. Надстройки должны знать формат файла, поскольку они должны выполнять свои действия только в том случае, если этот формат является одним из более новых форматов на основе сжатого XML (docx, xlsx, xlsm, pptx и т. Д.).

Несмотря на различия в API (вызовы и поведение) для каждого продукта Office, мне удалось создать рабочие надстройки для Word и Excel. В обоих случаях я могу обнаружить событие сохранения и внести свои изменения в зависимости от формата файла и от того, является ли это сохранение или операция сохранения. Однако я пришел в PowerPoint и пытаюсь определить, в каком формате файл сохраняется или сохраняется, и является ли это обычным сохранением или операцией сохранения как.

Итак, мои вопросы в надстройке PowerPoint VSTO:

  • Есть ли способ определить формат файла (кроме простого сравнения расширений файлов)?
  • Можно ли определить, является ли сохранение обычным сохранением или сохранением как?

Обновление
Хорошо, я изменил свой поиск и нашел эти вопросы, которые, кажется, отвечают на мой первый вопрос (т. Е. Нет другого способа, кроме как использовать расширение), но второй вопрос остается в силе (возможно, пока я не улучшу свое поисковое фу).

Ответы [ 2 ]

2 голосов
/ 16 апреля 2011

Application.PresentationBeforeSave - это событие для подключения, которое сообщит вам, что это «Сохранить как ...», поскольку оно происходит непосредственно перед появлением диалогового окна «Сохранить как». Application.PresentationSave - это обычное сохранение (но может использоваться программно для «Сохранить как ...»)

Итак, я бы поместил в модуль глобальную переменную, например, Dim isSaveAs As Boolean = False, затем в Application.PresentationBeforeSave установил бы ее на True (если только не аргумент Cancel = True - в этом случае я бы установил ее) вернуться к False). Тогда в случае Application.PresentationSave я бы проверил на If isSaveAs = True Then DoThis Else DoThat. Затем установите isSaveAs обратно на False в конце события Application.PresentationSave.

2 голосов
/ 15 апреля 2011

Насколько я помню с PPT, нет никакого способа сделать это.Вы должны перехватить событие OPEN, кэшировать имя файла для документа, а затем, во время сохранения, проверить имя файла.если это то же самое, то это было SAVE, если отличается, это сохранение как.

Если документ НОВЫЙ, первоначального имени файла не будет, поэтому при сохранении будет сохраняться как.

...