Открытие документа Microsoft Word и определение момента его закрытия - PullRequest
0 голосов
/ 15 февраля 2012

У меня есть требование для открытия и управления документом Word, хранящимся в файловой системе, из кода .NET.В частности, я хочу иметь возможность показывать диалоговое окно и, возможно, отправлять его на сервер, когда пользователь закрывает рассматриваемый документ Word.

После экспериментов и небольшого поиска я не уверен, что делать дальшеэтот.Возможны следующие варианты:

  1. Использование Process.Start и прослушивание события Exited.
  2. Использование Microsoft.Office.Interop.Word, а затем запуск документа через него и прослушивание дляСобытие DocumentBeforeClose.

Однако ни одно из них не решает полностью проблему.(1) потому что будет только один процесс Word, работающий для нескольких открытых документов, и полученное событие Exited не обязательно будет соответствовать фактическому документу, который мой код отвечал за открытие.И (2) потому что он не справляется со случаем, в котором происходит сбой Word, и это затрудняет правильное приведение в порядок этих COM-объектов.

Если у кого-то есть идея, как поступить с этим,или статья, которая помогла бы, я был бы благодарен.

1 Ответ

1 голос
/ 15 февраля 2012

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

Это просто предложение, которое работает. Может быть, вы можете использовать часть этого решения и смешать его с вашей собственной, чтобы найти удовлетворительный результат.

Удачи

...