WININETを使用して進行状況の表示するには?


サイ  2003-12-04 23:38:59  No: 80729

はじめまして。
現在、WinInetを使用してダウンロードやアップロードを行っています。
---
InternetOpen
InternetConnect
FtpGetFile
FtpPutFile
---
その際に処理の進行状況を表示したいのですが、
何か良い方法はありますでしょうか?
進行状況はプログレスバー、受送信状況(パーセンテージ表示とxxMB/xxMB)を
表示したいと思っています。
HPでいろいろ検索をしたのですが、良い方法が見つからず投稿させて頂きました。
どなたかご存知の方ご教授お願い致します。


岡田 之仁  2003-12-05 21:52:52  No: 80730

WinInetでは、送受信時の進行状態表示は無理です。
おおまかな進行状態なら、
Private Sub Inet1_StateChanged(ByVal State As Integer)
のStateで取れますが・・・

WinInetのままと言うのであれば、間接的にですが、
IP ヘルパ API を使用して、TCP/IPの転送状態を取得し、
そこから実際にどの程度のバイト数送受信されたのかを
類推してパーセント表示する・・・

OSは、Win2000以降に限定されますが・・・

あとは、すべてをソケット通信で行うプログラムを作成する
以外に方法が無いと思います。インターネット上でころがっ
ているいろいろなFTPソフトから、非同期通信で行っている
ものを探して、自分なりに細工を施し、送受信のパーセント
等が取得できるようにして・・・

オールorナッシング

だと思います。

以上。


サイ  2003-12-08 18:12:49  No: 80731

岡田さん回答有り難うございます。

IP ヘルパ API を使用すると案なのですが、
win2000以降に限定されてしまうという事なのであれば、
NTでも動かしたいため、ちょっとむずかしいです。

wininet.dllやInetコントロールを使うだけでは、
進行状況を表示させるのはむずかしそうですね。。
ちょっと今回は進行状況の表示は諦めようと思います。

とても親切な回答どうもありがとうございました。


たかみちえ  URL  2003-12-08 20:08:14  No: 80732

FTPのですか?
  ならば、Delphiのものですが、わたしのサイト、おんぷむらのうらに、コンポーネント(クラス)があります。
直接は使えませんが、ソースは役に立つと思います。

  FTPアップロード時、できる限りのサイズを送信する方法は、
わからなかったので1024バイト固定になっていますが、
ちゃんと進捗状況つきでファイルアップロードができます。

(ただ、FTPアップロードしか使ってないので、ほかのところにはバグがあるかも)


サイ  2003-12-09 00:26:38  No: 80733

たかみちえさん回答ありがとうございます。

上記ソースを参考にする為、
ダウンロードしようとしたのですが、
「ページが見つかりません」と表示されてしまいました。


たかみちえ  URL  2003-12-09 23:06:37  No: 80734

ごめんなさい、修正しておきました。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加