Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » .NET - Как исключить сбой программы c Microsoft.Office.Interop.Word

Ответить
Настройки темы
.NET - Как исключить сбой программы c Microsoft.Office.Interop.Word

Старожил


Сообщения: 230
Благодарности: 2

Профиль | Отправить PM | Цитировать


Изменения
Автор: tumanovalex
Дата: 15-05-2021
В программе работаю с Word и использую
Код: Выделить весь код
using Word = Microsoft.Office.Interop.Word
и ссылку на Microsoft Word 12.0 Object Library. Можно ли сделать так, чтобы при отсутствии на ПК установленного Word (например, при использовании другого редактора типа LibreOffice) программа завершалась с сообщением, что нужно установить Word? Я попробовал на ПК без Word программу:
Код: Выделить весь код
using System;
using Word = Microsoft.Office.Interop.Word;
using System.Collections.Generic;

namespace CsWordTest
{

  public class Program
  {

    private static void ShowMesError(string strMes)
    {
      Console.WriteLine(strMes);
      Console.WriteLine("\nПрограмма завершила работу. Нажмите любую клавишу");
      Console.ReadKey();
      Environment.Exit(1);
    }


    static void Main(string[] args)
    {
      string cyrDir = Environment.CurrentDirectory;
      string[] strDocFileName = Directory.GetFiles(cyrDir, "*.do*", SearchOption.AllDirectories);
      if (strDocFileName.Length > 1)
      {
        ShowMesError("Рядом с программой должен быть один файл с расширением doc или docx!");
      }
      if (strDocFileName.Length == 0)
      {
        ShowMesError("Рядом с программой нет файла с расширением doc или docx!");
      }
      Object missing = System.Reflection.Missing.Value;
      Object confConv = false;
      Object readOnly = true;
      Object isVisible = false;
      Object saveChanges = false;
      Object filename = strDocFileName[0];
      try
      {
        Word.Application word = new Word.Application();
        Word.Document doc = new Word.Document();
        doc = word.Documents.Open(ref filename, ref confConv, ref readOnly);
        word.Visible = false;
        Console.WriteLine("Работа с документами doc и docx возможна!");
        ((Word._Document)doc).Close(ref saveChanges, missing, missing);
        ((Word._Application)word).Quit(ref saveChanges);      
      }
      catch (Exception)
      {
        ShowMesError("Работа с документами doc и docx невозможна! Наверное, на ПК не установлен Microsoft Word!");
        throw;
      }
      Console.WriteLine("\nПрограмма завершила работу. Нажмите любую клавишу!");
      Console.ReadKey();
    }

  } // class Program
} // namespace CsWordTest
программа завершилась аварийно. Проект прикрепил.

Отправлено: 19:53, 29-05-2018

 


Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » .NET - Как исключить сбой программы c Microsoft.Office.Interop.Word

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
2016 - Microsoft Office 2016, Windows 10, Word документ не отправляется из Word Irmi Microsoft Office (Word, Excel, Outlook и т.д.) 1 19-11-2016 08:50
2007 - Сбой в microsoft office 2007 Наталья_Селюкова@vk Microsoft Office (Word, Excel, Outlook и т.д.) 1 01-06-2012 14:17
Доступ - Windows 2000 - недоступны программы Microsoft Office 2002 (Word, Excel) garober Microsoft Windows 2000/XP 2 30-03-2012 11:15
Как открыть документ Word 2007 в браузере и при этом исключить сообщение с запросами? yol_k Microsoft Office (Word, Excel, Outlook и т.д.) 0 30-11-2011 19:37
2007 - Microsoft Office Word 2007 Sviaga Microsoft Office (Word, Excel, Outlook и т.д.) 1 11-04-2010 20:32




 
Переход