Delphi массовая отправка сообщений в VK

Discussion in 'С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby' started by Amd64, 8 Jul 2012.

  1. alexey-m

    alexey-m Elder - Старейшина

    Joined:
    15 Jul 2009
    Messages:
    518
    Likes Received:
    100
    Reputations:
    37
    а я ничего и не менял, просто указал, что тут недочет, но ты его упорно не видишь, увы
     
  2. Amd64

    Amd64 New Member

    Joined:
    10 Jan 2011
    Messages:
    24
    Likes Received:
    2
    Reputations:
    0
    PHP:
    while IDNumber1 <= toIDNumber1 do
       
    begin
       get_hash
    ;
        if 
    Pos('Отправить',S)<>0 then send else send_Err;
       
    end;

    Теперь я всё в цикле ищу.Или опять не так что-то?
     
  3. 2echnoman

    2echnoman New Member

    Joined:
    3 Jul 2012
    Messages:
    54
    Likes Received:
    0
    Reputations:
    0
    Это первое что на глаза попалось.
     
  4. Amd64

    Amd64 New Member

    Joined:
    10 Jan 2011
    Messages:
    24
    Likes Received:
    2
    Reputations:
    0
    А что здесь не так?
     
  5. 2echnoman

    2echnoman New Member

    Joined:
    3 Jul 2012
    Messages:
    54
    Likes Received:
    0
    Reputations:
    0
    Может я не прав, но у тебя походу вечный цикл выходит, т.к. как только цикл начинается сначала IDNumber1 становится равной StrToInt(IDNumber.Text), а toIDNumber1 = StrToInt(toIDNumber.Text) и так каждый раз. И твои IDNumber1:=IDNumber1+1 нифига не влияют. Но это относиться к коду приведенному на первой странице.
     
  6. Amd64

    Amd64 New Member

    Joined:
    10 Jan 2011
    Messages:
    24
    Likes Received:
    2
    Reputations:
    0
    Сделал так-эффект тот же самый...

    PHP:
    unit Unit3;

    interface

    uses
      Windows
    MessagesSysUtilsVariantsClassesGraphicsControlsForms,
      
    DialogsStdCtrlsIdBaseComponentIdAntiFreezeBaseIdAntiFreeze;

    type
      TForm3 
    = class(TForm)
        
    Button1TButton;
        
    GroupBox2TGroupBox;
        
    IDNumberTEdit;
        
    toIDNumberTEdit;
        
    Label1TLabel;
        
    Label2TLabel;
        
    GroupBox1TGroupBox;
        
    Memo1TMemo;
        
    IdAntiFreeze1TIdAntiFreeze;
        
    procedure Button1Click(SenderTObject);
      private
        { Private 
    declarations }
      public
        { Public 
    declarations }
      
    end;

    var
      
    Form3TForm3;
    s,hash,ConnectToGroup:string;
    LengthID,IDNumber1,toIDNumber1,i:integer;
    Memo1TMemo;
    IDNumber,toIDNumberTEdit;

    implementation

    uses Unit1
    ;

    {
    $R *.dfm}
    function 
    UrlEncode(const sAnsiString): string;
    var
      
    Iinteger;
    begin
      Result 
    := '';
      for 
    := 1 to Length(S) do
        case 
    S[iof
          
    '%'' ''&''=''@''.'#13, #10, #128..#255: Result := Result + '%'
            
    IntToHex(Ord(S[i]), 2);
        else
          
    Result := Result S[i];
        
    end;
    end;
    procedure send;
    begin
    form1
    .IdHTTP1.get('http://vk.com/im?sel='+IDNumber.Text+'&act=a_send&al=1&hash='+hash+'&media=&msg='+UrlEncode(ansitoutf8(Memo1.Text))+'&title=&to='+IDNumber.Text);
    form1.Memo1.Lines.Add('Сообщение отправленно юзеру'+IDNumber.Text);
    end;

    procedure get_hash;
    begin
    LengthID
    :=Length(IDNumber.Text);//длина ID - необходим,чтобы спрасить hash
    S:=form1.IdHTTP1.get('http://vk.com/im?sel='+(IDNumber.Text) );
    hash:=Copy(SPos('IM.deleteDialog('IDNumber.TextS)+16+LengthID+318);
     
    end;

    procedure send_Err;
    begin
    form1
    .Memo1.Lines.Add('Ошбика!Сообщение не отправленно юзеру'+IDNumber.Text);

    end;

    procedure TForm3.Button1Click(SenderTObject);
    begin
         
    //IDNumber1:=StrToInt(IDNumber.Text);//начальное ID юзера
        //toIDNumber1:=StrToInt(toIDNumber.Text);//конечное ID юзера
         
    form1.Memo1.Clear;
       for 
    i:= StrToInt(IDNumber.Textto StrToInt(toIDNumber.Text) do
       
    begin
       get_hash
    ;
        if 
    Pos('Отправить',S)<>0 then send else send_Err;
       
    end;

      try
      
    form1.IdHTTP1.Disconnect;
    except
    end
    ;
    end;

    end.




     
  7. 2echnoman

    2echnoman New Member

    Joined:
    3 Jul 2012
    Messages:
    54
    Likes Received:
    0
    Reputations:
    0
    Возьми HttpAnalyzerStdV5 и посмотри что вообще происходит, может что-то отправляеться. Да и не надо код распихивать по 50 модулям.
     
  8. Amd64

    Amd64 New Member

    Joined:
    10 Jan 2011
    Messages:
    24
    Likes Received:
    2
    Reputations:
    0
    Ну,что-то отправляется,но там постоянно создаются запросы.Во многих написано

    <Request is not completed. waiting...>