![]() |
Вывод капчи в окно с VK
Как вывести капчу в Отдельное окно с Edit1, а потом отправить разшыфрованую обратно в ВК..? :confused:
|
на тебе на примере логина вк. Код взят из моего компонента, так что некоторые строчки тупо удаляй
Код:
|
При отправке ПОСТ запроса получаю в мемо такой код
{"ok":-2,"captcha_sid":"198480237911","text":"Enter code"} |
Спасибо за код RedFern.89 , как твой компонент установить.И какие методы есть и для чего они служат
|
RedFern.89,
исходя из количества несущей информации выше заданного вопроса, можно твёрдо сказать, что вряд-ли он поймет хотя бы начало твоего кода :( ArkNet, твой вопрос идентичен:"Что такое стенка? Она покрашена". Мой тебе совет: 1. Напиши язык программирования, на котором ты кодишь. 2. Опиши конкретней цели, которые ты преследуешь. А то же НИЧЕРТА непонятно, ты хочешь вывести капчу в виде текстовой строки в текстовое поле? Или ты хочешь его вывести как картинку? Отправить обратно куда? И что значит "расшифрованную"? |
RedFern.89 розобрался с твоим кодом.Его смысл такой
Отправляем пост запрос пустой, если вылезла капча то для вывода ее используем самую верхнюю процедуру. Потом отправляем пост запросс с нашими данными. А теперь скажы что у тебя в USES И какой надо Инди чтоб твой ВК компонент установить? |
инди 7-9, в uses idHTTP, idCookieManager, jpeg; - это конкретно для процедуры. а компонент установить легко - Component -> Install Component. Список функций, подробности установки и т.д. смотри тут: https://forum.antichat.ru/threadnav204126-1-10.html
|
Компилируется нормально но при запуске выдает ошибку "access violation at address 00403404 in module 'Project1.exe'. Read of address D284562F"
Вот код: Добавил на форму кукименеджер и связал его с ашттп. procedure Dialog(const captcha_sid: string); var MS : TMemoryStream; Jpg : TJPEGImage; begin Ms := TMemoryStream.Create; Jpg := TJPEGImage.Create; try Form1.idHttp1.Get('http://vkontakte.ru/captcha.php?s=1&sid=' + captcha_sid, Ms); Ms.Position := 0; Jpg.LoadFromStream(ms); Form1.Image1.Picture.Graphic:= Jpg; finally Jpg.Free; Ms.Free; end; end; procedure TForm1.Button1Click(Sender: TObject); var Hash, sid: string; Tmp,APost: TStringList; begin Tmp.Text := IdHTTP1.Post('http://vkontakte.ru/login.php', APost); If Pos('captcha_sid', tmp.Text) <> 0 Then begin sid := tmp.Text; sid := Copy(sid, Pos('":"', sid) + 3, Length(sid)); Delete(sid, Pos(#34, sid), Length(sid)); Dialog(sid); APost.Add('op=a_login_attempt'); APost.Add('captcha_sid=' + sid); APost.Add('captcha_key=' + Edit1.Text); IdHTTP1.Post('http://vkontakte.ru/login.php', APost); end; APost.Clear; APost.Add('act=login'); APost.Add('email=' + Edit2.Text); APost.Add('pass=' + Edit3.Text); Tmp.Text := IdHTTP1.Post('http://login.vk.com/', APost); Hash:=copy(Tmp.Text, 286, 56); APost.Clear; APost.Add('op=slogin'); APost.Add('s=' + Hash); Tmp.Text := IdHTTP1.Post('http://vkontakte.ru/login.php', APost); Memo1.Text:=Tmp.Text; Tmp.Free; APost.Free; end; |
=)))
Интерессно, а как ты загрузишь что-то в класс TStringList, не создаве его в памяти как объект? о_О
в начале напиши: Tmp := TStringList.Create; APost := TStringList.Create; |
| Время: 17:43 |