Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Общие вопросы по .NET и C# > Как перехватить закрытие документа Word?


Автор: Roo 20.1.2006, 19:08
Можно ли как-то заместить сохранение документа в вёрде? Т.е. когда пользователь нажимает кнопку сохранить (или Shift+F12), не вылетает окно для сохранения файла (т.к. нам файл здесь вообще не нужен), а выполняются какие-то "наши" действия и "наше" же сообщение-уведомление, что всё сохранено. Пробовал экспериментировать с событием DocumentBeforeSave, но дальше - ничего не пошло...
Спасите, если можете =)))

Автор: dronzo 21.1.2006, 16:48
http://support.microsoft.com/?kbid=302816
http://support.microsoft.com/?id=302815

Автор: Roo 22.1.2006, 09:52
Вопрос не в том, как настроить соотв. делегат и к какому подсоединить событию! Вопрос в том, как заменить стандартный процесс сохранения документа в вёрде (как файла) своим! Чтобы вёрд полностью был на время лишён своих собственных методов сохранения. Надеюсь понятно раъяснил...

Автор: mr.DUDA 22.1.2006, 10:41
В обработчике DocumentBeforeSave есть аргументы SaveAsUI и Cancel. Первый нужно поставить в false, если не нужно чтобы показывался диалог "Сохранить как...". Второй нужно поставить в true, чтобы документ вообще не сохранялся Word'ом.

Автор: Roo 22.1.2006, 20:17
Блин, не знаю: то ли я тормоз, то ли ещё хуже... Просто делаю так:
Код

private void Application_DocumentBeforeSave(Document Doc, ref bool SaveAsUI, ref bool Cancel)
{
                           SaveAsUI = false;
            Cancel = true;
}

И несмотря на это, после выхода из ф-ции вёрд всё равно показывает диалог "Сохранить как..."

Автор: mr.DUDA 23.1.2006, 08:10
Видимо, это происходит при закрытии документа (я прав ?). Наверное, ворд пытается сохранить изменения перед выходом по-другому, нежели как при нажатии "Save As...". Можно попробовать сделать так, чтобы изменений в документе "не стало" - сохранить документ во временный файл (в любой файл в папке Windows/Temp) в обработчике DocumentBeforeClose.

Автор: Roo 23.1.2006, 16:01
Это происходит при Shift+F12, т.е. "СОХРАНИТЬ"...

Автор: RedButterfly 26.8.2008, 14:43
При закрытии документа ворд выходит окно "Сохранить-нет?". Как словить нажатие на "Да"?
потом же нужно выгружать ворд чтобы не висел невидимым в процессах...сделать app.Quit(,,,);
а чтобы выгрузить нужно узнать закрыт он или нет...
 smile 

Автор: RedButterfly 27.8.2008, 08:00
Цитата(RedButterfly @ 26.8.2008,  14:43)
При закрытии документа ворд выходит окно "Сохранить-нет?". Как словить нажатие на "Да"?
потом же нужно выгружать ворд чтобы не висел невидимым в процессах...сделать app.Quit(,,,);
а чтобы выгрузить нужно узнать закрыт он или нет...
 smile

Сделала. 
Если написать


Код


wordApp.Activate();        // Активировали документ.


то уже не нужно ловить закрытие документа чтобы потом выгрузить ворд, так как ворд после закрытия уже не висит невидимым в процессах.

Вопрос: почему? smile

Автор: RedButterfly 29.8.2008, 07:05
Цитата(RedButterfly @ 27.8.2008,  08:00)
Цитата(RedButterfly @ 26.8.2008,  14:43)
При закрытии документа ворд выходит окно "Сохранить-нет?". Как словить нажатие на "Да"?
потом же нужно выгружать ворд чтобы не висел невидимым в процессах...сделать app.Quit(,,,);
а чтобы выгрузить нужно узнать закрыт он или нет...
 smile

Сделала. 
Если написать


Код


wordApp.Activate();        // Активировали документ.


то уже не нужно ловить закрытие документа чтобы потом выгрузить ворд, так как ворд после закрытия уже не висит невидимым в процессах.

Вопрос: почему? smile

и все-таки как узнать сохранили ли документ Ворд или нет.

 smile 

должна же быть конструкция вроде этой:

если  (нажали на кнопку "Сохранить") то ...
иначе ...

 smile 

и где на русском языке можно про эту тему почитать smile

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)