Word VBA: Как узнать, завершена ли фактическая операция сохранения? - PullRequest
1 голос
/ 21 декабря 2009

У меня проблема с методом Document.SaveAs в Word VBA с большими документами Word, похоже, что операция сохранения асинхронная, т.е. после вызова .SaveAs он немедленно возвращается, но с большими документами Word фактическая операция сохранения может быть не завершена, и она выполняется в другом потоке.

Итак, я хочу спросить, есть ли способ определить, выполняется или завершена операция фактического сохранения?

Я использую Delphi для вызова интерфейса автоматизации Word, если это что-то значит при обсуждении этой проблемы, но я так не думаю?

Ответы [ 2 ]

2 голосов
/ 09 марта 2010

Сохранения автоматизации делопроизводства - это вызов вне процесса, поэтому он всегда будет выполняться в отдельном процессе, поэтому он асинхронный по своей природе.

Буквально нет способа перехватить уведомление, если только оно не дает исключения.

0 голосов
/ 09 марта 2010

Это:

If ActiveDocument.Saved = True then
/* 'do something */
End If

Если к документу ранее не применяли .SaveAs к нему, вы также можете проверить это .Path (т.е. If ActiveDocument.Path <> "" Then ....)

Обратите внимание, что это фоновое сохранение является асинхронным, а не сохранение, которое вы вызываете вручную - это проверяется .Saved.

...