はじめまして。
現在、WinInetを使用してダウンロードやアップロードを行っています。
---
InternetOpen
InternetConnect
FtpGetFile
FtpPutFile
---
その際に処理の進行状況を表示したいのですが、
何か良い方法はありますでしょうか?
進行状況はプログレスバー、受送信状況(パーセンテージ表示とxxMB/xxMB)を
表示したいと思っています。
HPでいろいろ検索をしたのですが、良い方法が見つからず投稿させて頂きました。
どなたかご存知の方ご教授お願い致します。
WinInetでは、送受信時の進行状態表示は無理です。
おおまかな進行状態なら、
Private Sub Inet1_StateChanged(ByVal State As Integer)
のStateで取れますが・・・
WinInetのままと言うのであれば、間接的にですが、
IP ヘルパ API を使用して、TCP/IPの転送状態を取得し、
そこから実際にどの程度のバイト数送受信されたのかを
類推してパーセント表示する・・・
OSは、Win2000以降に限定されますが・・・
あとは、すべてをソケット通信で行うプログラムを作成する
以外に方法が無いと思います。インターネット上でころがっ
ているいろいろなFTPソフトから、非同期通信で行っている
ものを探して、自分なりに細工を施し、送受信のパーセント
等が取得できるようにして・・・
オールorナッシング
だと思います。
以上。
岡田さん回答有り難うございます。
IP ヘルパ API を使用すると案なのですが、
win2000以降に限定されてしまうという事なのであれば、
NTでも動かしたいため、ちょっとむずかしいです。
wininet.dllやInetコントロールを使うだけでは、
進行状況を表示させるのはむずかしそうですね。。
ちょっと今回は進行状況の表示は諦めようと思います。
とても親切な回答どうもありがとうございました。
FTPのですか?
ならば、Delphiのものですが、わたしのサイト、おんぷむらのうらに、コンポーネント(クラス)があります。
直接は使えませんが、ソースは役に立つと思います。
FTPアップロード時、できる限りのサイズを送信する方法は、
わからなかったので1024バイト固定になっていますが、
ちゃんと進捗状況つきでファイルアップロードができます。
(ただ、FTPアップロードしか使ってないので、ほかのところにはバグがあるかも)
たかみちえさん回答ありがとうございます。
上記ソースを参考にする為、
ダウンロードしようとしたのですが、
「ページが見つかりません」と表示されてしまいました。
ごめんなさい、修正しておきました。
ツイート | ![]() |