請教如何寫一個可以在網頁連續打字的程式? |
尚未結案
|
honta
一般會員 發表:1 回覆:0 積分:0 註冊:2018-10-18 發送簡訊給我 |
|
blue
中階會員 發表:170 回覆:136 積分:81 註冊:2002-04-15 發送簡訊給我 |
Hi,您好:
以下這個大約10年前寫的,是用來下載Youtube的, 是利用Kej's FLV Retriver這個網頁來幫忙下載,不過該網頁有改版,原本是會直接下載的,現在需另下載頁面中顥示的步驟1的檔案, 具體是用WebBrowser1.Document, OleObject.Document.all.Item, OleObject.Document.GetElementByID('btnsubmit').Click;等直接介入網頁操作,參考看看, 另外,也可用Webmethod的方式, 謝謝! unit Unit2; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, SHDocVw, MSHTML, StdCtrls, OleCtrls, IdBaseComponent, IdComponent, IdTCPConnection, IdTCPClient, IdHTTP; type TForm2 = class(TForm) WebBrowser1: TWebBrowser; Button1: TButton; Label1: TLabel; IdHTTP1: TIdHTTP; txtURL: TEdit; Label2: TLabel; procedure Button1Click(Sender: TObject); procedure WebBrowser1DocumentComplete(ASender: TObject; const pDisp: IDispatch; var URL: OleVariant); private { Private declarations } public { Public declarations } end; var Form2: TForm2; strOK: String; implementation {$R *.dfm} procedure TForm2.Button1Click(Sender: TObject); var Docs, Edits : OleVariant; str_Year,str_Month,str_Day:string; Flags: OLEVariant; fs: TFileStream; begin Docs :=WebBrowser1.Document; Flags:=0; //傳入搜尋網頁 WebBrowser1.Navigate(WideString('http://kej.tw/flvretriever/'), Flags, Flags, Flags, Flags); //While Not WebBrowser1.ReadyState = 0 do begin // Application.ProcessMessages //End; While StrOK = '' do begin // 還未執行完成時 Application.ProcessMessages; end; StrOK := ''; //傳入搜尋條件 //Docs.All('videoUrl').SetAttribute('value', 'http://www.youtube.com/watch?v=sZWwug9UqaY'); //txtURL.Text) Edits :=WebBrowser1.OleObject.Document.all.Item('videoUrl', 0); //Edits.Value := 'http://www.youtube.com/watch?v=sZWwug9UqaY'; Edits.Value := txtURL.Text; //執行搜尋網頁 //Docs.All('btnsubmit').InvokeMember('click'); WebBrowser1.OleObject.Document.GetElementByID('btnsubmit').Click; While StrOK = '' do begin // 還未執行完成時 Application.ProcessMessages; end; //取得結果 http://otcbnd.gretai.org.tw/c/d09show.asp~~略 Edits := WebBrowser1.OleObject.Document.all.Item('outputfield',0); Label1.Caption := Edits.Value; //下載檔案 fs := TFileStream.Create('C:\Temp\Media.flv', fmCreate); IdHTTP1.Get(Edits.Value,fs); end; procedure TForm2.WebBrowser1DocumentComplete(ASender: TObject; const pDisp: IDispatch; var URL: OleVariant); begin StrOK := 'OK'; end; end. |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |