Показать сообщение отдельно

  #22  
Старый 25.02.2010, 00:20
RedFern.89
Постоянный
Регистрация: 20.01.2010
Сообщений: 338
Провел на форуме:
500264

Репутация: 69
Отправить сообщение для RedFern.89 с помощью ICQ
По умолчанию

ну загружай страницу с написанием нового сообщения, выдирай от туда хэш, пойми его структуру, декодируй его, и отсылай с остальными параметрами. вот тебе пример отсылки сообщения)

Код:
function DecChas(chas: string): string;
var
 Decchas : string;
 str : string;
 I : Integer;
 Len : integer;
begin

 str := Copy(chas, 6, 12);
 Len := Length(str);

 For I := 0 To Length(str) -1 do
 begin
  Decchas := Decchas + str[len];
  Inc(len, -1);
 end;

 str := Copy(chas, 21, Length(chas) -5);
 str := str + Copy(chas, 5, 1);

 Len := Length(str);

 For I := 0 To Length(str) -1 do
 begin
   Decchas := Decchas + str[len];
   Inc(len, -1);
 end;

 Result := Decchas;
end;


....


function SendMessage(const ID, MsgText, MsgTitle: string): boolean;
var
 ResponseText, Hash : string;
 Post : TStringList;
begin

 Hash := HTTP.Get('http://vkontakte.ru/mail.php?act=a_write_box&to=' + id);
 Hash := Copy(Hash, Pos('decodehash', Hash) +12, Length(Hash));
 Delete(Hash, Pos(#39, Hash), Length(Hash));
 Post := TStringList.Create;
 Post.Add('act=sent');
 Post.Add('ajax=1');
 Post.Add('chas=' + DecChas(hash));
 Post.Add('to_id=' + id);
 Post.Add('title=' + AnsiToUTF8(MsgTitle));
 Post.Add('message=' + AnsiToUTF8(MsgText));
 Post.Add('from_box=1');

 HTTP.Request.Referer := 'http://vkontakte.ru/mail.php?act=a_write_box&to=' + id;
 ResponseText := HTTP.Post('http://vkontakte.ru/mail.php', Post);

 If Pos('отправлено', ResponseText) <> 0 Then Result := True else Result := False;

 Post.Free;
end;
//# Отрывки кода из моего компонента
 
Ответить с цитированием