Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.08.08;
Скачать: CL | DM;

Вниз

TwebBrowser событие OnBeforeNavigate2 проблема с PostData   Найти похожие ветки 

 
Secam   (2002-05-26 21:38) [0]

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


 
Song ©   (2002-05-26 23:12) [1]

String()


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

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


 
int64 ©   (2002-05-27 07:41) [3]

Следующий код, по идее, с любой ссылке зайдёт на 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=<MyUsername>&passwd=<MyPassword>"));
end;


Дерзай.



Страницы: 1 вся ветка

Текущий архив: 2002.08.08;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.017 c
3-23908
alords
2002-07-18 09:14
2002.08.08
Query


1-24122
zarem
2002-07-26 14:25
2002.08.08
Нужен Манифест для D5 под XP


6-24162
Sour
2002-05-26 15:47
2002.08.08
Куда делись сообщения?


1-24060
BOPOH
2002-07-24 13:54
2002.08.08
Вопрос по бордюру окна


3-23883
Prog_mail
2002-07-17 12:23
2002.08.08
Помогите, пожалуйста, с UpdateSQL