| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 
 |  
void __fastcall TForm1::Button1Click(TObject *Sender)
{
        AnsiString ansIp11,ansIp12,ansIp13,ansIp14,ansIp21,ansIp22,ansIp23,ansIp24;
        int IpDeb,IpFin;
        std::vector<std::string> strIp;
        AnsiString ansAddIp;
        HANDLE th = 0;
        bool bflag = true;
 
        SECURITY_ATTRIBUTES attr;
        int i =0;
 
        ansIp11 = Edit1->Text;
        ansIp12 = Edit2->Text;
        ansIp13 = Edit3->Text;
        ansIp14 = Edit4->Text;
        ansIp21 = Edit5->Text;
        ansIp22 = Edit6->Text;
        ansIp23 = Edit7->Text;
        ansIp24 = Edit8->Text;
 
        if(bflag==true)
        {
              IpDeb = StrToInt(ansIp14.c_str());
              IpFin = StrToInt(ansIp24.c_str());
              attr.nLength = sizeof(SECURITY_ATTRIBUTES);
              attr.lpSecurityDescriptor = NULL;
              attr.bInheritHandle = 0;
 
              for(i=IpDeb;i<=IpFin;i++)
              {
                        ansIp14 =i;
                        ansAddIp=("");
                        ansAddIp = ansIp11+"."+ansIp12+"."+ansIp13+"."+ansIp14;
                        if (Ping(ansAddIp)==1)
                        {
                                strIp.push_back(ansAddIp.c_str());
                        }
              }
              int const taille(strIp.size());
              for(i=0;i<=taille-1;i++)
              {
                            th = CreateThread(NULL,0,&MyThread,&strIp[i], 0,NULL);
                            if(th ==NULL){Form1->Memo1->Lines->Add("Impossible de creer un thread");}
                            //WaitForSingleObject(th,10);
              }
 
               Memo1->Lines->Add("Fin de scrutation, nombre de poste trouvé : ");
               Memo1->Lines->Add(taille);
        }
} | 
Partager