Как установить Фокус и Модальный способ в Приложении Winform / WPF, размещенном в VSTO Excel 2003 Надстройка? - PullRequest
1 голос
/ 25 августа 2011

У меня есть 2 вопроса:

1) В моей надстройке VSTO я создал кнопку.При нажатии запускается поток STA, запускающий окно WPF (которое фактически является моим настоящим приложением).Приложение обрабатывает данные Excel, отправляет их в веб-службы и т. Д. И т. Д. В определенный момент я звоню:

System.Diagnostics.Process.Start(filePath);

путь похож на "C: \ file.xls".Действительно, он открывает файл Excel.Проблема в том, что в этом файле делается акцент вместо того, чтобы оставаться в моем окне WPF.Я попытался установить фокус на Текущий процесс, но поскольку новый файл открылся и мое окно WPF размещено в том же процессе Excel, это вообще не решило проблему ...

Есть идеи?


2) Как вы можете видеть, поскольку мое приложение WPF запускается в потоке, даже с использованием модального диалога, я все еще могу изменять файл Excel в фоновом режиме ...что совсем не то, что я хочу ... Как это исправить, заблокировав файл Excel в фоновом режиме?Можно ли сделать это, используя COM-объект Workbook, которым я могу управлять?

1 Ответ

1 голос
/ 26 августа 2011

Хорошо, я решил свою проблему, не используя поток. Я запускаю свое приложение прямо в потоке VSTA_Main (поток надстроек), вызывая зависание моей кнопки ...

Так как это не другой поток, весь мой процесс в блокировке.

По второму вопросу я запустил еще один процесс Excel, подобный этому:

            ProcessStartInfo info = new ProcessStartInfo("Excel.exe",filePath);
            Process.Start(info);

У меня все еще есть небольшая ошибка при создании файла Excel, но я все же решил мою основную проблему.

...