Я создал программу, которая ищет файлы Excel, Word и TXT для введенной пользователем строки. Поэтому я открываю каждый файл, ищу строку и добавляю файл (с информацией) в сетку данных, если документ содержит эту строку.
Программа отлично работает, за исключением некоторых непредвиденных ситуаций. Если пользователь не открыл Excel при запуске поиска, программа откроет новый экземпляр Excel и начнет поиск. Во время этого поиска, если пользователь затем откроет файл Excel из windows explorer, он откроет его в том же экземпляре, что и моя программа, который затем продолжит показывать все файлы, которые он открывает, ищет, затем закрывает.
Если у пользователя уже есть Excel Open, то моя программа открывает свой собственный экземпляр, и это не проблема. Точно такая же проблема относится и к текстовым документам.
Мой вопрос: как я могу запретить пользователю открывать файл в том же экземпляре Excel, который используется моей программой в настоящее время?
Вот основные сведения о том, как я получаю доступ к Excel:
using Excel = Microsoft.Office.Interop.Excel;
Excel.Application xlsApp = new Excel.Application();
Excel.Workbook wkb = null;
Excel.Workbooks wkbs = xlsApp.Workbooks;
xlsApp.DisplayAlerts = false;
wkb = wkbs.Open(filePath, ReadOnly: true);
//Do search here...
//Close the workbook when necessary...
wkb.Close(false);
//Close the app when necessary...
xlsApp.Quit();
Я надеюсь, что есть какой-то параметр, который я могу установить, чтобы запретить пользователю открывать документы в одном экземпляре.