私のホームページ:http://www.tommstudio.com/
私が最近開発したシステムには、ファイルをダウンロードする機能が必要です。以前はBCBを使用して面倒なAPIコールを書いていましたが、突然、APIができることを思い出したので、早朝に検索するようになりました。このAPIはurldownloadtofileです。それだけでなく、nmhttpなどのDelphiのいくつかのコントロールも簡単にダウンロードできます。以下は、すべてCSDNからの詳細なコードです。みんなに簡単にアクセスできるように、これらすべてをソートしました。
urlmonを使用します。 function downloadfile(source、dest: string ):boolean; 始める 試す 結果:= urldownloadTofile( nil 、pchar(source)、pchar(dest)、0、 nil )= 0; を除外する 結果:= false ; 終わり; 終わり; downloadfile( 'http://www.borland.com/delphi6.zip、' c:/kylix.zip ')thenの場合 showmessage( 'ダウンロード成功') 他のshowmessage( 'ダウンロード失敗」) |
=============================
ルーティーン:
urlmon、shellapiを使用します。 function downloadfile(sourcefile、destfile:string):boolean; 始める 試す 結果:= urldownloadTofile(nil、pchar(sourcefile)、pchar(destfile)、0、nil)= 0; を除外する 結果:= false; 終わり; 終わり; 手順tform1.button1.click(sender:tobject); const // urlの場所 sourceFile:= ' http://www.google.com/intl/de/images/home_title.gif'; //ファイルを保存する場所 destfile:= 'c:/temp/google-image.gif'; 始める downloadfile(sourcefile、destfile)の場合 始める showmessage( 'ダウンロード成功!'); //ブラウザにダウンロードされた画像を表示します shellexecute(application.handle、pchar( 'open')、pchar(destfile)、pchar( '')、 nil 、sw_normal) 終わり それ以外 showmessage( 'ダウンロード中のエラー' + sourceFile) 終わり; |
=====================
次のコードを追加します。
nmhttp1.inputfilemode:= truth; nmhttp1.body:= 'ローカルファイル名'; nmhttp1.header:= 'head.txt'; nmhttp1.outputfilemode:= false ; nmhttp1.reportlevel:= status_basic; nmhttp1.proxy:= 'プロキシサーバーのIPアドレス'; nmhttp1.proxyport:= 'プロキシサーバーのポート番号'; nmhttp1.headerinfo doで 始める クッキー:= ''; localmailaddress:= ''; localprogram:= ''; 参照者:= ''; userid:= 'user name'; パスワード:= 'ユーザーパスワード'; 終わり; nmhttp1.get( ' http://www.abcdefg.com/software/a.zip'); |
それを試してください、DelphiのディレクトリにはTNMHTTPコントロールの例があります。 NT4+、Win95+、IE3+、URLモニカー関数を使用できます。
urlmonを使用します。 ... olecheck(urldownloadTofile( nil 、 'url'、 'filename'、0、 nil )); |
また、IbindstatusCallbackの実装に合格して、ダウンロードの進行状況を追跡したり、中止したダウンロードを制御することもできます。簡単な機会は1つの文で行うことができます。
ところで、URLのモニカーは、NMHTTPのようなプロトコルをカプセル化する代わりに、ほとんどのURLをカプセル化するため、urldownLoadTofileを使用してHTTP、FTP、さらにはローカルおよびLANファイル、さらにはMSITSTORE(MSDNライブラリ文書の実装)などの他のカスタムモニカーをダウンロードできます。
var downloadfile:tfilestream; beginio downloadfile:= tfilestream.create( 'c:/aa.rar'、fmcreate); idhttp1.get( 'http://www.sina.com.cn/download/aa.rar'、downloadfile); downloadloadfile.free; 終わり; // ----------------------------------------------------------- -------------------------------------------------------------- ---------------------------------- |
プログラムは終了します