В настоящее время я размещаю элемент управления IE Browser в форме .NET (2.0) и использую его для загрузки файлов Office, таких как Excel и Word, таким образом:
_ieCtrl.Navigate("C:\\test.xls", False);
Хостинг и загрузка работают хорошо, за исключением того, что когда я перехожу к файлу, мне открывается диалоговое окно с вопросом, хочу ли я сохранить или открыть файл. (Это стандартное поведение при загрузке файлов IE.) Я всегда хочу открыть его и не хочу, чтобы отображалось диалоговое окно.
Другая проблема заключается в том, что когда я закрываю окно, в котором размещается элемент управления IE и документ Office, документ не закрывается и остается открытым на диске. Это означает, что последующие попытки открыть тот же файл через мое приложение или собственное офисное приложение не удастся из-за нарушения общего доступа.
Есть ли программный способ избежать этого диалога и впоследствии очистить ресурсы? Я прошу программного ответа, потому что веб-исследование дает только решения, которые влекут за собой изменение настроек на уровне ОС.
Bounty ПРИМЕЧАНИЕ:
Я открыт для любого решения этой проблемы, которое позволит мне:
- Разместите электронную таблицу Excel внутри моего приложения
- Работайте довольно прозрачно (избегайте проблем с юзабилити, подобных описанным выше)
- Избегайте внесения каких-либо изменений в ОС, которые могут повлиять на другие приложения (особенно на IE)
- Ноль дополнительных затрат (без лицензированных сторонних библиотек, пожалуйста) Code Project и другие ресурсы с открытым исходным кодом в порядке
- Не связывайтесь с элементом управления DSO Framer ActiveX, если не разработана / обнаружена стабильная версия