2015-07-10 3 views
1

Я пишу AddIn для PowerPoint 2010. Я использую две функции PowerPoint.Как дифференцировать вызов SaveAs и сохранять вызов в событиях PowerPoint?

Application_PresentationBeforeSave(ByVal Pres As Microsoft.Office.Interop.PowerPoint.Presentation, ByRef Cancel As Boolean) 

Application_PresentationSave(ByVal Pres As Microsoft.Office.Interop.PowerPoint.Presentation) 

Когда я выполняю операцию Сохранить (Ctrl + S) или SaveAs (File -> SaveAs) на PowerPoint он выполняет Application_PresentationBeforeSave() метод.

Но мне нужно различать эти два вызова (Ctril + S & SaveAs) и соответственно выполнять некоторые задачи. Итак, как я могу дифференцировать эти два вызова в методе BeforeSave?

Что касается Word, то в Application_DocumentBeforeSave(ByVal Doc As Microsoft.Office.Interop.Word.Document, ByRef SaveAsUI As Boolean, ByRef Cancel As Boolean) есть флаг SaveAsUI, который различает, был ли этот метод вызван действием SaveAs или Ctrl + S.

Есть ли какой-либо флаг/свойство, которое отличается от PowerPoint?

+0

Ctrl + S - это всего лишь ключевое слово shortcut, это не ваш вопрос о попытке разграничения между «File> Save» и «File> SaveAs'? –

ответ

0

Thanks Eugene за то, что показал мне путь. Моя проблема решена. Я попробовал ваше предложение.

Вот описание моего решения. Я добавил вызов функции в Ribbon.xml

В функции MySaveAs() я установил одну переменную glbal. И использовал его в BeforeSave mthod.

+0

Я столкнулся с той же проблемой. Не могли бы вы поделиться своим Ribbon.xml? Я не могу найти правильный idMso для перепрограммирования SaveAs в PowerPoint 2010. Я могу переименовать Save, но не SaveAs – tdemay

+0

Извините, но я покинул этот проект, поэтому у меня нет доступа к этому Ribbon.xml. Вы скажите мне, какой idMso вам нужен? Я могу помочь вам с вашей проблемой. –

3

Вам необходимо перевернуть кнопки ленты или заменить элементы управления за кулисами на свой собственный, чтобы вы знали, какие действия пользователи выбрали в пользовательском интерфейсе. В случае управления лентой см. Статью Temporarily Repurpose Commands on the Office Fluent Ribbon в MSDN. Backstage UI описывается в следующих статьях в MSDN в глубину:

Introduction to the Office 2010 Backstage View for Developers

Customizing the Office 2010 Backstage View for Developers

В случае клавиш Ctrl + S вам нужно установить хук клавиатуры с помощью функции Windows API, см Using shortcut keys to call a function in an Office Add-in более Информация.