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

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

16.07.2014, 17:41. Показов 2412. Ответов 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
Модератор
10048 / 3894 / 883
Регистрация: 22.02.2013
Сообщений: 5,847
Записей в блоге: 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
18030 / 7733 / 892
Регистрация: 25.12.2011
Сообщений: 11,502
Записей в блоге: 16
16.07.2014, 21:42
Лучший ответ Сообщение было отмечено The trick как решение

Решение

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

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

Посмотри мой код: Как загрузить изображение с WEB страницы, не используя его URL адрес
Там есть и часть кода на VB6, который правильно вытягивает саму картинку в объектную переменную.
2
Модератор
10048 / 3894 / 883
Регистрация: 22.02.2013
Сообщений: 5,847
Записей в блоге: 79
16.07.2014, 22:23
Позже напишу как сделать, посмотрю как это делает WebBrowser.
1
2 / 2 / 1
Регистрация: 09.07.2014
Сообщений: 15
17.07.2014, 05:20  [ТС]
Цитата Сообщение от The trick Посмотреть сообщение
Позже напишу как сделать, посмотрю как это делает WebBrowser.
Буду ждать.
0
Модератор
10048 / 3894 / 883
Регистрация: 22.02.2013
Сообщений: 5,847
Записей в блоге: 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
Ответ Создать тему
Новые блоги и статьи
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru