Форум программистов, компьютерный форум, киберфорум
Наши страницы
C# Windows Forms
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.75/8: Рейтинг темы: голосов - 8, средняя оценка - 4.75
AlexanderWM
11 / 11 / 3
Регистрация: 16.10.2012
Сообщений: 139
1

Как сохранить картинку из документа загруженного в WebBrowser

21.03.2014, 14:42. Просмотров 1491. Ответов 4
Метки нет (Все метки)

Пытаюсь автоматизировать регистрацию на одном ресурсе. Вышла неприятность с капчой. При загрузке страницы она одна, но кода я копирую ссылку изображения, и пытаюсь его открыть - ничего не отдаёт. Я понимаю, что это такая защита. Типа при каждом обновлении страницы - она разная.

Но отказываться я не намерен. Решил обойти этот момент через использование WebBrowser. Как заполнять поля - я нашёл. А вот как сохранить картинку из документа загруженного в WebBrowser без понятия. Как?
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.03.2014, 14:42
Ответы с готовыми решениями:

Как сохранить картинку из webbrowser, находящуюся внутри элемента с известным атрибутом class?
здравствуйте. возможно я неочень понятно сформулировал вопрос, вобщем суть...

Как добавить картинку в webbrowser
private mshtml.IHTMLDocument2 docs; docs =...

WebBrowser - как отрисовать элемент управления в картинку?
Я уже слегка запутался. Такая проблема: Приложение, через webBrowser грузит...

Как сохранить картинку с использованием IHTMLDocument2?
IHTMLDocument2 doc = (IHTMLDocument2)webBrowser1.Document.DomDocument; ...

OpenFileFialog - как загрузить картинку и сохранить ее в качестве свойства BackGroundImage
Здравствуйте! Подскажите пожалуйста, как мне дать возможность пользователю...

4
edward_freedom
1555 / 1434 / 303
Регистрация: 01.10.2011
Сообщений: 2,636
21.03.2014, 17:07 2
AlexanderWM, Получить изображение из WebBrowser (капча)
Там проект снизу, скачай глянь
1
AlexanderWM
11 / 11 / 3
Регистрация: 16.10.2012
Сообщений: 139
23.03.2014, 17:55  [ТС] 3
Цитата Сообщение от edward_freedom Посмотреть сообщение
AlexanderWM, как взять изображение из WebBrowser
Там проект снизу, скачай глянь
Там нет решения

Добавлено через 3 часа 11 минут
Вот решение. Может кому-то будет полезным.
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
  IHTMLDocument2 doc = (IHTMLDocument2)webBrowser1.Document.DomDocument;
                IHTMLControlRange imgRange = (IHTMLControlRange)((HTMLBody)doc.body).createControlRange();
 
                foreach (IHTMLImgElement img in doc.images)
                {
                    imgRange.add((IHTMLControlElement)img);
 
                    imgRange.execCommand("Copy", false, null);
 
                    try
                    {
                        using (Bitmap bmp = (Bitmap)Clipboard.GetDataObject().GetData(DataFormats.Bitmap))
                        {
                            string name = img.nameProp;
                            if (name.IndexOf("image.php") > -1)
                            {
                                 name = "image.png";
                                 bmp.Save(name);
                             
 
                            }
                       
                        }
                    }
                    catch (Exception error)
                    {
                        MessageBox.Show(error.ToString());
                    }
0
ninja2
969 / 188 / 32
Регистрация: 26.09.2012
Сообщений: 2,018
Завершенные тесты: 1
26.08.2015, 22:45 4
AlexanderWM, А как на С++ это можно сделать?
Что в коде происходит? Ты в цикле обходишь элементы все IHTMLImgElement , Дальше что делаем находим элемент ????
Что эти строчки означают? Ты типо контекстное меню вызвал или хз. что это?
C#
1
2
imgRange.add((IHTMLControlElement)img);
imgRange.execCommand("Copy", false, null);
А что в этой строке происходит, ты выбираешь область где будешь кликать правой клавишей мышки или что?
C#
1
IHTMLControlRange imgRange = (IHTMLControlRange)((HTMLBody)doc.body).createControlRange();
Добавлено через 2 минуты
и эта строчка не ясна
C#
1
2
using (Bitmap bmp = (Bitmap)Clipboard.GetDataObject().GetData(DataFormats.Bitmap))
                        {
Что тут происходит, битмеп создается, а откуда взялся ClipBoard???
0
ninja2
969 / 188 / 32
Регистрация: 26.09.2012
Сообщений: 2,018
Завершенные тесты: 1
28.08.2015, 11:58 5
C++
1
imgRange.execCommand("Copy", false, null);
От здесь добавляется в буфер изображение, я пробовал делать на с++ у меня там url добавляется ну да ладно.
А что в этих строках происходит кто может расписать?
C++
1
2
3
4
5
6
7
8
9
10
11
12
using (Bitmap bmp = (Bitmap)Clipboard.GetDataObject().GetData(DataFormats.Bitmap))
                        {
                            string name = img.nameProp;
                            if (name.IndexOf("image.php") > -1)
                            {
                                 name = "image.png";
                                 bmp.Save(name);
                             
 
                            }
                       
                        }
Что эта строчка означает?
C++
1
using (Bitmap bmp = (Bitmap)Clipboard.GetDataObject().GetData(DataFormats.Bitmap))
Создается Bitmap. Что функция GetDataObject делает? Возвращает содержимое буфера?. А что делает GetData???? Мб. кто знает как на С++ это сделать???
0
28.08.2015, 11:58
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.08.2015, 11:58

Как создать Word файл и сохранить в него картинку из PictureBox и текст из TextBoxов?
Подскажите как создать Word файл и сохранить в него картинку из Picturebox и...

WebBrowser, как при клике на ссылку с файлом скрыть окно выбора действия (открыть, сохранить)
Доброго времени суток, товарищи! Разрабатываю простенький html-браузер на C#....

Неполный текст документа в WebBrowser
Есть WebBrowser, который отображается содержимое сайта браузерной игры...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru