2015-05-14 4 views
0

Я автоматизирую Internet Explorer, используя SHDocVW.dll и MSHTML с C#, и я хочу сохранить изображение со страницы на диск (формат JPEG).Как преобразовать IHTMLImgElement в изображение

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

Я попытался сделать следующее:

IHTMLImgElement imgElement = ...; 
IHTMLControlRange imgRange = ...; 

imgRange.add(imgElement as IHTMLControlElement); 
imgRange.execCommand("copy", false, null); 

Это ничего не делает. Я не могу извлечь что-либо из буфера обмена. Каждое найденное мной решение не помогло мне.

+0

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

ответ

0

Ваш подход к веб-клиенту, вероятно, не содержит файлов cookie ... см. How do I log into a site with WebClient? для примера, который обрабатывает файлы cookie.

Ваш код выглядит отлично, за исключением того, что пользователь должен изменить параметр безопасности, чтобы разрешить доступ к буферу. Если изображение кэшируется на диске, вы можете dig the WinInet cache после разбора страницы для местоположения изображения.

+0

На самом деле, я не использую класс WebClient. Я использую SHDocVW.dll и MSHTML. –

 Смежные вопросы

  • Нет связанных вопросов^_^