как правильно сделать распознавание капчи на стене вк

Discussion in 'С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby' started by good_man, 28 Aug 2010.

  1. good_man

    good_man New Member

    Joined:
    24 May 2010
    Messages:
    112
    Likes Received:
    3
    Reputations:
    -2
    это опять я)

    в общем не соображу как сделать проверку на правильность введенной капчи. к примеру при логине я сделал так:

    Code:
    while(cap_while>0)
                    {
    
                    //TMemoryStream*cap=new TMemoryStream();
                    AnsiString page;
                    page=HTTP->Get("http://vkontakte.ru/login.php?op=a_login_attempt");
                            if (page.Pos("captcha_sid"))
                            {
                            pause=1;
                            AnsiString cap_sid;
                            AnsiString capurl ="http://vkontakte.ru/login.php?op=a_login_attempt&captcha_sid=";
                            AnsiString cap_key="&captcha_key=";
                             cap_sid=page.SubString(page.Pos("captcha_sid")+14, +12);
    
                             HTTP->Get("http://vkontakte.ru/captcha.php?s=1&sid="+cap_sid,cap);
                             cap->SaveToFile(cap_sid+".jpg");
                            Form1->Image1->Picture->LoadFromFile(cap_sid+".jpg");
                            DeleteFile(cap_sid+".jpg");
    
                                    while(pause>0) //ждем ожидания нажатия на кнопку
                                    {
                                    ::Sleep(3000);
                                    }
                             HTTP->Get(capurl+cap_sid+cap_key+Form1->Edit1->Text);
    
                            }
                            pause=1;
                            if (page.Pos("vklogin"))
                            {
                             break;
                            }
                         cap->Free();
                         } //конец цикла распознавания капчи
    
    так как ее можно проверить посылая повторный запрос на http://vkontakte.ru/login.php?op=a_login_attempt. а как быть со стенами? ведь сначала идет отправка мессаги а только потом появляется капча. и если ее не правильно ввести то как отследить этот момент? в общем я запутался ) нужен совет бывалых. заранее благодарю.
     
  2. M_script

    M_script Members of Antichat

    Joined:
    4 Nov 2004
    Messages:
    2,582
    Likes Received:
    1,310
    Reputations:
    1,557
    Везде в ВК если неправильно ввести капчу, будет повторная капча.
     
  3. greki_hoy

    greki_hoy Member

    Joined:
    4 Mar 2010
    Messages:
    326
    Likes Received:
    57
    Reputations:
    41
    Code:
    while(pause>0) //ждем ожидания нажатия на кнопку
    {
        ::Sleep(3000);
    }
    
    fix it
    Code:
    wait_pause_keyup()
    {
        WaitForSingleObject(PauseEvent, INFINITE);
    }
    
    signal_pause_keyup()
    {
        SetEvent(PauseEvent);
    }
    
     
  4. good_man

    good_man New Member

    Joined:
    24 May 2010
    Messages:
    112
    Likes Received:
    3
    Reputations:
    -2
    справился :) и как сделать: TMemoryStream*cap=new TMemoryStream();

    если вне цикла пишу то не робит приходится в цикл пихать.