В программе работаю с 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
программа завершилась аварийно. Проект прикрепил.