IgrikX
07.05.2010, 19:23
Как вытащить капчу Вконтакте при регистрации.
Пробую так
// -- регулярка
AnsiString exp_captha = "(captcha_sid\":\"(.+?)\")";
TRegExpr* captha = new TRegExpr;
captha->Expression = exp_captha;
if (captha->Exec(otv)) {
captha_id = captha->Match[2];
Memo1->Lines->Add("Id капчи: "+captha_id);
//---------------------------------------
TJPEGImage *captcha_jpeg = new TJPEGImage();
TMemoryStream *stream = new TMemoryStream; // создаём поток
try {
IdHTTP1->Get("http://vk.com/captcha.php?sid="+captha_id,
stream); // загружаем капчу в поток
}
catch(...) {
}
stream->Position = 0; // устанавливаем обязательно на 0
captcha_jpeg->LoadFromStream(stream); // загружаем из потока
Image1->Picture->Assign(captcha_jpeg); // выводим
//---------------------------------------
}else{
Memo1->Lines->Add("Id капчи не получен!!!");
return;
}
Но при запросе капчи методом гет, она другая..
Пробую так
// -- регулярка
AnsiString exp_captha = "(captcha_sid\":\"(.+?)\")";
TRegExpr* captha = new TRegExpr;
captha->Expression = exp_captha;
if (captha->Exec(otv)) {
captha_id = captha->Match[2];
Memo1->Lines->Add("Id капчи: "+captha_id);
//---------------------------------------
TJPEGImage *captcha_jpeg = new TJPEGImage();
TMemoryStream *stream = new TMemoryStream; // создаём поток
try {
IdHTTP1->Get("http://vk.com/captcha.php?sid="+captha_id,
stream); // загружаем капчу в поток
}
catch(...) {
}
stream->Position = 0; // устанавливаем обязательно на 0
captcha_jpeg->LoadFromStream(stream); // загружаем из потока
Image1->Picture->Assign(captcha_jpeg); // выводим
//---------------------------------------
}else{
Memo1->Lines->Add("Id капчи не получен!!!");
return;
}
Но при запросе капчи методом гет, она другая..