Подавление диалогового окна «Сохранить / Открыть» в элементе управления WebBrowser - PullRequest
3 голосов
/ 22 августа 2010

У меня есть элемент управления WebBrowser, который автоматически регистрирует меня на веб-сайте и пытается автоматически загрузить данные CSV.Все работает нормально, за исключением того, что когда он пытается загрузить данные CSV, он открывает диалоговое окно с вопросом, хочу ли я сохранить файл или открыть его (как в IE).Я пытаюсь автоматически загрузить CSV-файл в файл по своему выбору (или, лучше, сохранить CSV-файл непосредственно в строковую переменную).Я не могу понять, как отключить диалоговое окно и автоматически захватить загрузку.Я искал и нашел несколько решений, однако они не работают для меня, потому что:

1) Я сейчас использую графический интерфейс.Все это делается в классе (поэтому такие методы, как SendKeys, не являются жизнеспособным решением)

2) Загрузка происходит с безопасного сайта и требует проверки подлинности.Элемент управления WebBrowser обрабатывает все это для меня, но если я использую WebRequest и WebResponse, чтобы попытаться перехватить загрузку, я больше не аутентифицируюсь.

Я использую C #.Любая помощь будет оценена.

Ответы [ 3 ]

4 голосов
/ 22 августа 2010

Вы можете подключить свою собственную реализацию IDownloadManager, которая загружается тихо. Для Windows Forms это означает, что вам нужно переопределить метод WebBrowser.CreateWebBrowserSiteBase, чтобы предоставить расширенный сайт управления. Проверьте Управление загрузками Webbrowser для получения подробной информации.

2 голосов
/ 25 августа 2010

Решения Шэн Цзяна являются лучшими, если вы знакомы с внутренними компонентами C ++.

В противном случае посмотрите, как это делает iMacros для Internet Explorer (= бесплатная программа для записи макроса в браузере). Кажется, они используют хуки Windows, чтобы подавить диалог загрузки IE .

0 голосов
/ 22 августа 2010

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

...