全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:3552
推到 Plurk!
推到 Facebook!

示範如何使用操控 IE 送出 Post Data

 
shaofu
高階會員


發表:5
回覆:136
積分:103
註冊:2003-01-07

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-06-09 14:51:04 IP:210.243.xxx.xxx 未訂閱
相關說明請看原始檔.. 範例是用 Delphi 呼叫 IE 登入 K.Top  發表人 -
附加檔案:31987_IEPost_0609.zip
shaofu
高階會員


發表:5
回覆:136
積分:103
註冊:2003-01-07

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-06-09 14:52:08 IP:210.243.xxx.xxx 未訂閱
原始碼如下:    
unit Unit2;    interface    uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, OleCtrls, SHDocVw, ActiveX, OleServer;    type
  TForm1 = class(TForm)
    Edit2: TEdit;
    Edit3: TEdit;
    Label2: TLabel;
    Label3: TLabel;
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;    var
  Form1: TForm1;    implementation    {$R *.dfm}    // 把 Post Dtat (String) 轉成 IE 所需要的格式 VarArray
function StringToPostData(const Value: string): OleVariant;
begin
  Result := Unassigned;
  if Value <> '' then
  begin
    Result := VarArrayCreate([0, Length(Value) - 1], varByte);
    Move(Pointer(Value)^, VarArrayLock(Result)^, Length(Value));
    VarArrayUnlock(Result);
  end;
end;    // 示範如何使用操控 IE Post Data
procedure TForm1.Button1Click(Sender: TObject);
var
  IE: TInternetExplorer;
  vFlag, vFrame, vPost, vHeader: OleVariant;
begin
  CoInitialize(nil);
  IE := TInternetExplorer.Create(nil);
  try
    // 開啟新的 IE 並顯示
    IE.Visible := true;
    vFlag := navOpenInNewWindow;        // Post String, 請依需求修改, 以下是 Delphi K.Top Login 用的 :P
    vPost := StringToPostData(Format('Method_Type=login&Name=%s&Password=%s',
      [Edit2.Text, Edit3.Text]));        // Post 的資料是加在 Http-Header 後方[/red]
    // 在 Http-Header 處要多加 Content-Type 做解釋 (不需要修改)
    vHeader := 'Content-Type: application/x-www-form-urlencoded'   #10#13;        // 使用 Navigate 連接到所要的 URL, 請依需求修改
    IE.Navigate('http://delphi.ktop.com.tw/default.asp', vFlag, vFrame, vPost,
      vHeader);
  finally
    IE.Free;
    CoUnInitialize;
  end;
end;    end.
發表人 - shaofu 於 2003/06/09 15:00:52
starks
一般會員


發表:2
回覆:13
積分:3
註冊:2003-04-12

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-06-10 05:24:43 IP:163.25.xxx.xxx 未訂閱
請問我輸入了ID,PASSWD之後,他出現"不支援此種介面",這是為什麼呢 os:win2k , ie5.0 我是直接執行執行檔
shaofu
高階會員


發表:5
回覆:136
積分:103
註冊:2003-01-07

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-06-10 09:53:22 IP:210.243.xxx.xxx 未訂閱
引言: 請問我輸入了ID,PASSWD之後,他出現"不支援此種介面",這是為什麼呢 os:win2k , ie5.0 我是直接執行執行檔
嗯, 我是直接拿 Delphi 做好的 WebBrowser 來使用, 或許某些細節我沒有注意到, 可以麻煩你做一下測試嗎 ? 1. 用 Delphi 開啟專案, 單步執行測試, 看是那邊出問題 O.o? 2. 如果可能的話, 使用 Delphi 提供的 Import ActiveX Control 來試看看 3. 有一樣問題的, 也可幫忙測試看看喔 (讓我偷懶一下吧:p) PS1: 參考網址 http://msdn.microsoft.com/library/default.asp?url=/workshop/browser/webbrowser/browser_control_node_entry.asp PS2: 由上面的資訊, 應該是 IE4.0 以上版本就能使用
japhenchen
高階會員


發表:51
回覆:444
積分:184
註冊:2003-07-23

發送簡訊給我
#5 引用回覆 回覆 發表時間:2003-09-25 11:38:28 IP:211.96.xxx.xxx 未訂閱
犯得著這麼辛苦控制IE BROWSER嗎?小弟用了另外的方法來處理POST的事情,還蠻好用的!這個ASP是用來回傳使用者資料用的,做成XML,方便CLIENTDATASET讀取使用    
var vid,vpass:string ;
    xstr : tStringList;
    resp : TstringList ;    begin
   if passform.showmodal=mrok then begin
      xstr:=TStringList.Create;
      resp:=TSTringList.create;
      xstr.add('id=' Passform.edit1.text);
      xstr.add('pass=' Passform.edit2.text);
      resp.text:=(idHttp1.Post('http://10.10.1.8/cfnav/index.asp',xstr));
      resp.SaveToFile('temp.xml');
領航天使
站長


發表:12216
回覆:4186
積分:4084
註冊:2001-07-25

發送簡訊給我
#6 引用回覆 回覆 發表時間:2003-09-25 22:15:31 IP:211.76.xxx.xxx 未訂閱
引言: 犯得著這麼辛苦控制IE BROWSER嗎?小弟用了另外的方法來處理POST的事情,還蠻好用的!這個ASP是用來回傳使用者資料用的,做成XML,方便CLIENTDATASET讀取使用
var vid,vpass:string ;
    xstr : tStringList;
    resp : TstringList ;    begin
   if passform.showmodal=mrok then begin
      xstr:=TStringList.Create;
      resp:=TSTringList.create;
      xstr.add('id=' Passform.edit1.text);
      xstr.add('pass=' Passform.edit2.text);
      resp.text:=(idHttp1.Post('http://10.10.1.8/cfnav/index.asp',xstr));
      resp.SaveToFile('temp.xml');
這個方法好簡潔喔 感謝分享 ~~~Delphi K.Top討論區站長~~~
------
~~~Delphi K.Top討論區站長~~~
japhenchen
高階會員


發表:51
回覆:444
積分:184
註冊:2003-07-23

發送簡訊給我
#7 引用回覆 回覆 發表時間:2003-09-27 13:07:54 IP:211.96.xxx.xxx 未訂閱
不過我剛剛回頭看了一下我的回應,發現好像答不對題哦!呵呵,人家是要自動開啟網頁登入ktop,不是要純post資料或取得response.......... 這東西我是做來玩人家的網上投票系統用的,跑個thread object就可以一秒鐘投個幾百票............壞壞的點子~~誰叫那個網站的議題真的很蠢~~
系統時間:2024-04-24 12:43:55
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!