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

請問使用TWebBrowser當取出網頁上的所有links時,如何下載

答題得分者是:hagar
iamjsn
初階會員


發表:78
回覆:95
積分:44
註冊:2002-08-16

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-12-19 13:44:51 IP:203.204.xxx.xxx 未訂閱
使用TWebBrowser開啟某個圖片網頁,已知道每個圖片的url,請問要用什麼方法把它下載回來呢?謝謝
hagar
版主


發表:143
回覆:4056
積分:4445
註冊:2002-04-14

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-12-19 13:56:15 IP:202.39.xxx.xxx 未訂閱
參考這篇: http://delphi.ktop.com.tw/topic.php?TOPIC_ID=19514 或: http://www.lmc-mediaagentur.de/dpool/tips/0941.htm     Answer 1:
uses
  URLMon;     { ... }
  if URLDownloadToFile(nil, 'http://go.to/masdp', 'c:\index.html', 0, nil) <> 0 then 
    MessageBox(Handle, 'An error ocurred while downloading the file.', PChar(Application.Title),
                              MB_ICONERROR or MB_OK); 
{ ... }    
Answer 2:
uses
  Wininet;    var
  InternetBrowserUserAgent: String;
  {Set it as you like. Win98/IE uses 'Mozilla/4.0 (compatible; MSIE 5.5; Windows 98)' }    { ... }    function GetInternetStream (URL: String; Stream: TStream): LongInt;
type
  TNetBuffer = Array[0..1023] of Byte;
  PNetBuffer = ^TNetBuffer;
var
  ihConnect,iDocument: HINTERNET;
  NetBuffer: PNetBuffer;
  BufferSize: Integer;
  I: integer;
begin
  Result := - 1;
  ihConnect := InternetOpen(PChar(InternetBrowserUserAgent), LOCAL_INTERNET_ACCESS, '', '', 0);
  try
    if ihConnect <> NIL then
    begin
      iDocument := InternetOpenURL(ihConnect, PChar(URL), NIL, Cardinal(- 1),
                                INTERNET_FLAG_RELOAD or INTERNET_FLAG_DONT_CACHE or
                                INTERNET_FLAG_RAW_DATA, 0);
      try
        if iDocument <> NIL then
        begin
          Result := 0;
          try
            New (NetBuffer);
            repeat
              InternetReadFile(iDocument, NetBuffer, SizeOf(TNetBuffer), BufferSize);
              if BufferSize > 0 then
              begin
                Result := Result   Stream.Write(NetBuffer^, BufferSize);
              end;
            until
              (BufferSize < SizeOf(TNetBuffer));
          finally
            Dispose(NetBuffer);
          end;
        end;
      finally
        internetCloseHandle (iDocument);
      end;
    end;
  finally
    InternetCloseHandle (ihConnect);
  end;
end;
--- Everything I say is a lie. 發表人 - hagar 於 2003/12/19 13:59:51
系統時間:2024-05-07 12:00:04
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!