UrlDownloadToFileで進行状況を・・・


Sni  2010-04-22 13:19:30  No: 38329  IP: 192.*.*.*

UrlDownloadToFileでファイルをDL中に進行状況をプログレスバーで表示しようと思っております
DL中のファイルをサイズと現在どこまでDLしたかを把握する方法はありますでしょうか?
それとDL中にソフトが固まってしまうのですが回避方法はあるのでしょうか?

編集 削除
DEKO  2010-04-22 15:29:31  No: 38330  IP: 192.*.*.*

> プログレスバー
UrlDownloadToFile() の 4 番目の引数を指定します。
ソースコードのサンプルは以下にあります。

[Datei downloaden (mit Fortschrittsanzeige) - Delphi-PRAXiS]
http://www.delphipraxis.net/topic75,0,asc,0.html

編集 削除
DEKO  2010-04-22 15:43:55  No: 38331  IP: 192.*.*.*

> UrlDownloadToFile() の 4 番目の引数を指定します。
失礼しました。5 番目の引数 (lpfnCB) ですね。

編集 削除
Sni  2010-04-22 23:13:55  No: 38332  IP: 192.*.*.*

>>DEKOさん
教えて頂いた内容で目的の事ができました
本題と関係ないのですが、UrlDownloadToFileでファイルをDLする場合とブラウザで右クリック対象をファイルで保存する場合とでDLする時間にかなり差がでてしまうのですがどうしてなのでしょうか??
10MのファイルをDLするのにUrlDownloadToFileだと8〜10分ほどかかり
右クリックから保存だと1〜2分なのですが・・・
う〜ん謎だ・・・

編集 削除
DEKO  2010-04-23 00:03:54  No: 38333  IP: 192.*.*.*

こんにちは。

OnProgress の度に Application.ProcessMessages を実行したり、
ゲージを更新しに行ったりしているのが原因かと思われます。

ゲージの更新をタイマーとかで 0.5 秒おきにしてみたりとかすれば、
ダウンロード時間は短縮できると思います。
(キャンセルのタイミングも 0.5 秒おきになってしまいますが)

編集 削除