Проблемы автоматизации FileDownload в элементе управления axWebBrowser в C # - PullRequest
1 голос
/ 28 апреля 2011

Я работаю над проектом, пытающимся очистить сайт интрасети в моей компании, потому что в настоящее время существуют ограничения, которые не позволяют мне получать помощь на стороне сервера. Я пишу клиент C #, используя элемент управления axWebBrowser для перехода на страницу. На странице есть кнопка управления, вызывающая страницу ASPX, которая создает динамическую загрузку CSV-файла из SQL-запроса. При нормальных условиях это открывает диалог FileDownload для сохранения CSV.

Я нашел примеры людей, использующих событие BeforeNavigate2 для захвата e.uRL, а затем с помощью события FileDownload для переопределения диалогового окна и использования WebClient для получения файла. Этот метод будет работать хорошо для меня, за исключением того, что e.uRL содержит URL-адрес сценария .aspx, а не файл .csv, который создается динамически.

Еще одно предложение, которое я прочитал, состояло в том, чтобы разобрать заголовки из запроса HTML для пути к файлу, но когда я это сделал, я сгенерировал исключение 401 Несанкционированный доступ к заголовкам.

Наконец, и я предпочитаю избегать этого, если это возможно, я думал об использовании вызова API Win32 и использовании FindWindow и SendMessage для навигации по диалоговому окну файла по умолчанию, но я действительно не хочу создавать многопоточное приложение с ждать, чтобы сделать это. Я не могу найти событие, которое вызывается, когда открыто диалоговое окно FileDownload, только события, которые срабатывают до его открытия или после его закрытия.

Любые ваши идеи были бы великолепны, я могу начать вставлять сюда код, который у меня есть, если он разъяснит мое объяснение.

...