Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

TwebBrowser событие OnBeforeNavigate2 проблема с PostData [D5, Win95/98]


Secam ©   (2002-05-26 21:38:00) 

Уважаемые мастера,
Вопрос такой, В WebBrowser загружается страничка с формой для заполнения. Момент отправки формы отлавливаю по событию OnBeforeNavigate2. Преобразую OleVariant"ы в строки. URL - все нормально, Headers - нормально, а в POSTDATA одни вопросительные знаки.В watch листе написано: PostData - Variant array of Byte.
Но когда я пытаюсь обратиться к элементам массива,
вылетает сообщение об ошибке: PostData is not array.
Помогите пожалуйста, вопрос жизни и смерти !
Как преобазовать PostData в строку ?


int64   (2002-05-27 07:41:00) [1]

Следующий код, по идее, с любой ссылке зайдёт на HotMail с логином "MyUsername"и паролем "MyPassword". (разумеется, если такие есть)

function Encode(const S: string): string;
var
I: Integer;
Hex: string;
begin
for I := 1 to Length(S) do

case S[i] of
" ": result := Result + "+";
"A".."Z", "a".."z", "*", "@", ".", "_", "-",
"0".."9", "$", "!", """", "(", ")":
result := Result + s[i];
else
begin
Hex := IntToHex(ord(S[i]), 2);
if Length(Hex) = 2 then Result := Result + "%" + Hex else
Result := Result + "%0" + hex;
end;
end;
end;

function StringToVarArray(const S: string): Variant;
begin
Result := Unassigned;
if S "" then
begin
Result := VarArrayCreate([0, Length(S) - 1], varByte);
Move(Pointer(S)^, VarArrayLock(Result)^, Length(S));
VarArrayUnlock(Result);
end;
end;

procedure TForm1.WebBrowser1BeforeNavigate2(Sender: TObject;
const pDisp: IDispatch; var URL, Flags, TargetFrameName, PostData,
Headers: OleVariant; var Cancel: WordBool);
begin
Url := "https://lc1.law5.hotmail.passport.com/cgi-bin/dologin";
TargetFrameName:=0;
Flags:=NavNoHistory;
headers := StringtoVarArray("Content-Type:application/x-www-form-urlencoded"#13#10);
Postdata := StringToVarArray(Encode("login=&passwd="));
end;


Дерзай.


Secam   (2002-05-27 04:50:00) [2]

Если бы всё было так просто, я бы не спрашивал, это не работает,
всё те же знаки вопроса. :(((


Song   (2002-05-26 23:12:00) [3]

String()


Наверх

Титульная страница Поиск, карта сайта Написать письмо