Форум программистов, компьютерный форум, киберфорум
Visual Basic
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.82/11: Рейтинг темы: голосов - 11, средняя оценка - 4.82
2 / 2 / 1
Регистрация: 09.07.2014
Сообщений: 15

Скачивание капчи - Сохранённая капча и капча в WebBrowser различаются

16.07.2014, 17:41. Показов 2487. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Мне надо скачать капчу с этого сайта http://profitcentr.com (нажмите на кнопку вход).
Я пытался скачать так:
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
Option Explicit
Private Declare Function URLDownloadToFile Lib "urlmon" Alias _
    "URLDownloadToFileA" (ByVal pCaller As Long, _
    ByVal szURL As String, ByVal szFileName As String, _
    ByVal dwReserved As Long, ByVal lpfnCB As Long) As Long
Public Event ErrorDownload(FromPathName As String, ToPathName As String)
Public Event DownloadComplete(FromPathName As String, ToPathName As String)
 
Public Function DownloadFile(FromPathName As String, ToPathName As String)
If URLDownloadToFile(0, FromPathName, ToPathName, 0, 0) = 0 Then
DownloadFile = True
RaiseEvent DownloadComplete(FromPathName, ToPathName)
Else
DownloadFile = False
RaiseEvent ErrorDownload(FromPathName, ToPathName)
End If
End Function
 
Private Sub Form_load()
Call DownloadFile("http://profitcentr.com/captcha_1.php", "c:\captcha.png")
End Sub
Проблема в том, что сохранённая капча и капча в WebBrowser различаются.
Как сделать так, чтобы сохранённая капча и капча в WebBrowser были одинаковыми?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
16.07.2014, 17:41
Ответы с готовыми решениями:

Капча. Обновление капчи
Здравствуйте я не могу понять что делает в этом коде <div class="add_commentsform" id="comments_addform"> <p...

Получить изображение из WebBrowser (капча)
На форме есть webBrowser, который загружает страницу с капчей. Мне нужно выдернуть капчу с уже загруженной страницы. И поместить её в ...

капча
Установил букс на хостинг. Всё нормально но не работает капча. Вместо картинки показывает зелёный квадратик.Пробовал во всех...

6
Модератор
10057 / 3902 / 884
Регистрация: 22.02.2013
Сообщений: 5,853
Записей в блоге: 79
16.07.2014, 17:50
Капчу так и не удалось скачать.
Нужно капчу выдергивать из самого WebBrowser'а. По идее для каждого запроса - рандомная капча. Ты качаешь сначала в WebBrowser, а потом уже второе подключение через URLDownloadToFile.
1
2 / 2 / 1
Регистрация: 09.07.2014
Сообщений: 15
16.07.2014, 17:56  [ТС]
Цитата Сообщение от The trick Посмотреть сообщение
Нужно капчу выдергивать из самого WebBrowser'а.
Как это сделать?
0
Эксперт WindowsАвтор FAQ
 Аватар для Dragokas
18033 / 7736 / 892
Регистрация: 25.12.2011
Сообщений: 11,502
Записей в блоге: 16
16.07.2014, 21:42
Лучший ответ Сообщение было отмечено The trick как решение

Решение

nik_ok, здравствуйте !

Я тоже пытался, но там чтобы на VB6 сделать, нужно по идее знать API по работе с изображениями.
В итоге сделал на C#, т.к. в нем есть несколько встроенных классов специально для этого.

Посмотри мой код: Как загрузить изображение с WEB страницы, не используя его URL адрес
Там есть и часть кода на VB6, который правильно вытягивает саму картинку в объектную переменную.
2
Модератор
10057 / 3902 / 884
Регистрация: 22.02.2013
Сообщений: 5,853
Записей в блоге: 79
16.07.2014, 22:23
Позже напишу как сделать, посмотрю как это делает WebBrowser.
1
2 / 2 / 1
Регистрация: 09.07.2014
Сообщений: 15
17.07.2014, 05:20  [ТС]
Цитата Сообщение от The trick Посмотреть сообщение
Позже напишу как сделать, посмотрю как это делает WebBrowser.
Буду ждать.
0
Модератор
10057 / 3902 / 884
Регистрация: 22.02.2013
Сообщений: 5,853
Записей в блоге: 79
19.07.2014, 22:28
Лучший ответ Сообщение было отмечено The trick как решение

Решение

Как и обещал.

Создал tlb с объявлением интерфейса IHTMLElementRender:
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
[
    uuid(12345678-98B5-11CF-BB82-00AA00BDCE0B),
    helpstring("IHTMLElementRender interface"),
    version(1.00)
]
 
library IHTMLElementRender
    {
    //importlib ("stdole2.tlb");
    [uuid(3050F669-98B5-11CF-BB82-00AA00BDCE0B)]
    interface IHTMLElementRender:IUnknown {
 
        void DrawToDC(
            [in] int hdc);
 
        void SetDocumentPrinter(
            [in] BSTR PrinterName,
            [in] int hdc);
    }
}
Подключаешь tlb в референсы (после компиляция tlb не нужна)
Пользоваться так как написано у Dragokas:
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Option Explicit
 
Private Sub Form_Load()
    wb.Navigate "http://profitcentr.com/"
End Sub
 
Private Sub wb_DocumentComplete(ByVal pDisp As Object, URL As Variant)
    Dim imgObj  As Object
    Dim iRender As IHTMLElementRender.IHTMLElementRender
 
    wb.Document.parentWindow.execScript "javascript: OpenComment('avtoriz')"
    Set imgObj = wb.Document.images("captcha_1")
    Set iRender = imgObj
    iRender.DrawToDC picCaptcha.hDC
    picCaptcha.Refresh
End Sub
Капча рисуется в PictureBox.


В архиве библиотека типов и пример.
Вложения
Тип файла: rar IHTMLElementRender.rar (2.9 Кб, 60 просмотров)
3
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
19.07.2014, 22:28
Помогаю со студенческими работами здесь

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

Капча
И так снова я =) Подскажите мне пожалуйста как мне спарсить капчу вот с этого сайта http://www.kyivstar.net/ru/sms/ Мне надоело лазить...

Капча
Как вывести капчу в edit ? Дайте пример. С меня + :) var postdata:tstringlist; begin postdata:=TSTringList.Create; ...

капча
имеется сервис для рассылки смс как можно распознать капчу она там числовая 3х символьная http://sms.wapscriptphp.com/index.php

Капча
Всем привет. Сразу говорю что я крайне мало знаком с PHP. знаю html. На нем же и написал форму следующую <form action=""...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
1С: Контроль уникальности заводского номера
Maks 23.03.2026
Алгоритм контроля уникальности заводского (или серийного) номера на примере документа выдачи шин для спецтехники с табличной частью. Данные берутся из регистра сведений, по которому настроено. . .
Хочу заставить корпорации вкладываться в здоровье сотрудников: делаю мат модель здравосохранения
anaschu 22.03.2026
e7EYtONaj8Y Z4Tv2zpXVVo https:/ / github. com/ shumilovas/ med2. git
1С: Программный отбор элементов справочника по группе
Maks 22.03.2026
Установка программного отбора элементов справочника "Номенклатура" из модуля формы документа. В качестве фильтра для отбора справочника служит группа номенклатуры. Отбор по наименованию группы. . .
Как я обхитрил таблицу Word
Alexander-7 21.03.2026
Когда мигает курсор у внешнего края таблицы, и нам надо перейти на новую строку, а при нажатии Enter создается новый ряд таблицы с ячейками, то мы вместо нервных нажатий Энтеров мы пишем любые буквы. . .
Krabik - рыболовный бот для WoW 3.3.5a
AmbA 21.03.2026
без регистрации и смс. Это не торговля, приложение не содержит рекламы. Выполняет свою непосредственную задачу - автоматизацию рыбалки в WoW - и ничего более. Однако если админы будут против -. . .
1С: Программный отбор элементов справочника по значению перечисления
Maks 21.03.2026
Установка программного отбора элементов справочника "Сотрудники" из модуля формы документа. В качестве фильтра для отбора служит значение перечислений. / / Событие "НачалоВыбора" реквизита на форме. . .
Переходник USB-CAN-GPIO
Eddy_Em 20.03.2026
Достаточно давно на работе возникла необходимость в переходнике CAN-USB с гальваноразвязкой, оный и был разработан. Однако, все меня терзала совесть, что аж 48-ногий МК используется так тупо: просто. . .
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru