Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   С/С++, C#, Delphi, .NET, Asm (https://forum.antichat.xyz/forumdisplay.php?f=24)
-   -   Антикапча C++ Builder (https://forum.antichat.xyz/showthread.php?t=200003)

Zuldrak 28.04.2010 13:27

Антикапча C++ Builder
 
Может кто нить будь дать простой пример работы с AC в билдере,

Тупо отправка капчи - Ожидание - Прием

Спасибо

Желательно пример с Id Http а не на сокетах

Компилятор желательно C++ Builder 6 или 9

M_script_ 29.04.2010 12:58

PHP код:

//---------------------------------------------------------------------------
String CheckCaptcha(String filenameString apikeybool is_phrasebool is_regsensebool is_numericint min_lenint max_len)
{
    
String sFtype "image/pjpeg";
    
String sTmpstr "";
    
String sCaptcha_id "";
    
TIdMultiPartFormDataStream *multi = new TIdMultiPartFormDataStream;
    
TIdHTTP *http = new TIdHTTP(0);
    
multi->AddFormField("method""post");
    
multi->AddFormField("soft_id""5");    
    
multi->AddFormField("key"apikey);
    
multi->AddFile("file"filenamesFtype);
    if(
is_phrase)
        
multi->AddFormField("phrase""1");
    if(
is_regsense)
        
multi->AddFormField("regsense""1");
    if(
is_numeric)
        
multi->AddFormField("numeric""1");
    if(
min_len)
        
multi->AddFormField("min_len"IntToStr(min_len));
    if(
max_len)
        
multi->AddFormField("max_len"IntToStr(max_len));

    
sTmpstr http->Post("http://antigate.com/in.php"multi);

    if(
sTmpstr.Pos("ERROR_"))
    {
        
delete multi;
        
delete http;
        return 
sTmpstr;
    }
    if(
sTmpstr.Pos("OK"))
    {
        
sCaptcha_id sTmpstr.SubString(sTmpstr.Pos("|") + 1sTmpstr.Length() - sTmpstr.Pos("|"));
    }
    if(
sCaptcha_id == "")
    {
        
delete multi;
        
delete http;
        return 
"ERROR: bad captcha id!";
    }
    for(
int i 012i++)
    {
        
Sleep(5000);

        
sTmpstr http->Get("http://antigate.com/res.php?key="+apikey+"&action=get&id="+sCaptcha_id);

        if(
sTmpstr.Pos("ERROR_"))
        {
            
delete multi;
            
delete http;
            return 
sTmpstr;
        }
        if(
sTmpstr.Pos("OK|"))
        {
            
delete multi;
            
delete http;
            return 
sTmpstr.SubString(sTmpstr.Pos("|") + 1sTmpstr.Length() - sTmpstr.Pos("|"));
        }
    }
    
delete multi;
    
delete http;
    return 
"ERROR_TIMEOUT!";
}
//--------------------------------------------------------------------------- 



Время: 09:42