Я мог видеть много очень похожих тем вокруг, но ничто, похоже, не дало мне решения, которое должно быть очень простым.
Из моего приложения winforms мне нужно закрыть работающий экземпляр документа Word (открытого из самого приложения). Когда я открываю документ Word из приложения, я отслеживаю его в списке. Теперь, как я могу закрыть тот же документ?
Вот что я пробовал:
private bool CloseWord(string osPath) //here I pass the fully qualified path of the file
{
try
{
Word.Application app = (Word.Application)Marshal.GetActiveObject("Word.Application");
if (app == null)
return true;
foreach (Word.Document d in app.Documents)
{
if (d.FullName.ToLower() == osPath.ToLower())
{
d.What? //How to close here?
return true;
}
}
return true;
}
catch
{
return true;
}
}
Я получаю много методов для объекта документа, но только .Close()
для закрытия, который имеет такие аргументы: ref object SaveChanges, ref object OriginalFormat, ref object RouteDocument
, которые я не понимаю.
Каков идеальный способ? Спасибо..
Редактировать:
Я не могу закрыть все приложение Word (WinWord), так как у пользователей могут быть открыты другие файлы Word.
Мне нужно просто завершить экземпляр слова (что-то вроде
Process.Kill()
) без каких-либо запросов пользователю сохранить или нет и т. д.