Inetコントロールでエラー処理を行いたい!


srny  2004-12-01 19:17:01  No: 87022

Inetコントロールを用いてFTPサーバ上のファイルの転送を行うプログラムを作成たのですが、エラー処理の方法がわかりません。特にディレクトリ一覧の取得を行う際に時間がかかるらしく、ハングアップしたりしてしまいます。何か良い方法があれば教えて下さい!なお、動作環境はWindowsXP、VB6.0を使用しています。


ねろ  2004-12-01 19:30:10  No: 87023

Inetコントロールでは細かな設定は出来ません。
APIのwininetか、DOSのFTPコマンドを使う事をお勧めします。
ちなみにそのサーバーのハングするディレクトリーには
幾つ位のファイル又はフォルダーがあるのでしょうか。


srny  2004-12-01 23:02:36  No: 87024

ねろさん、ご意見ありがとうございます。
現在はテスト環境で実行しているため、
ファイルは10くらいです。
自分なりにもいろいろ原因を探ってみたのですが、
ディレクトリの取得やファイルの転送の際などに処理の完了を待つように、
DoEventsを用いて

  Do While Inet.StillExecuting = True   
    DoEvents
  Loop

としていたところ、これが原因でハングアップしているようです。
使用方法として問題があるのでしょうか?


ねろ  2004-12-01 23:35:21  No: 87025

>使用方法として問題があるのでしょうか?
微妙なところです。
http://madia.world.coocan.jp/vb/vb_bbs/200405_04050102.html

ただしこの症状は、ハングアップしているのではなく、
サーバーからの応答が無い為で、原因は他にあるのでしょう。
DoEventsが入っているので他のキーは受け付けるはずです。


srny  2004-12-02 01:20:49  No: 87026

ねろさんのご指摘のとおり、
DoEventsではただ応答待ちで
確かにハングアップしているわけではないようです。
ハングアップの原因は他にあるようですね。
エラーの原因を調べたいのですが手図まりの状態です。
ねろさんの最初のご意見の通り
他の手段を考えた方が良いのかもしれないですね。
ありがとうございました。


ねろ  2004-12-02 01:49:31  No: 87027

この様な症状の時1番くさいのは、ファイアーウオールでしょう。
他のFTPソフトではこのサーバーにアクセスできていますか?


srny  2004-12-03 21:13:58  No: 87028

返信遅れてすみません。
ハングアップの問題は解決しました!!
どうやらコーディングにミスがあったようです。
しかしまた一つ問題が・・・。
Inetコントロールで転送中の処理のエラーを取得したいのですが
できません。
タイマーでStillExecutingの値を定期的に見に行き、
エラーを取得できないかと考えたのですが、
エラーを出すために、FTPサーバーを途中で無理やりおとしてみても
StillExecutingの値はTrueのままです。
Inetで取得できるエラーを用いたらできるかとも考えたのですが、
うまくいきません。
これってStateChangeイベントの中でひろえないのでしょうか?
何か良い解決方法があれば是非是非ご教授下さい!!!


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

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






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