投稿日 | : 2005/08/22(Mon) 17:46 |
投稿者 | : 叶 |
Eメール | : |
URL | : |
タイトル | : Re^5: Inetを利用したDIRについて |
ガッさん、ご助言ありがとうございます。
> どこで無限ループしているのでしょうか…?
DIRを使用した際に、StateChangedイベントが完了しなくなる為
待機状態が延々と続いてしまいます。
(尚、DIRのみを実行した場合は正常に12が返ってきました)
.Execute , "DIR"
Do While .StillExecuting
DoEvents
Loop
↑このループが抜けれません。
> StateChangedイベントで、
> "コマンドが完了したら正常に12が帰ってくる"という性質を利用して、
> .StillExecutingを監視し続けるのを止めてみては?
この場合、どのようにしてVBの処理を待機させるのでしょうか?
12が戻るまでVBのメインロジックを待機させないと行けないのですが
私の方でもStillExecutingを使用せずに、StateChanged内で
12が戻るまでループとかも試したのですが駄目でした。
> …もっとするならば、1回目のコマンド呼び出しだけStateChangedイベントの外でやって、
> 2回目以降のコマンド呼び出しはStateChangedイベントの中で行うとか…
StateChanged内でSIZEを実行するという事でよろしいでしょうか?
さっそく試してみたいと思います。
> Inetオブジェクトを再作成するのですか…
> 最終手段にしておきましょう。
ためしにInetを一度クローズして切断し、再度接続しなおしても
現象変わらずでした。
また、もうひとつInetオブジェクトを貼り付けてInet1とInet2で
処理を分けてみましたが、やはり駄目でした。
> Inetはあまりいい話を聞きませんねぇ…止めちゃいます?(ぇ
そうしたいのは山々なんですけどw
Inetしか使えない状態な物でorz
> あいにく手元に実験できる環境がないので本当につまらないことしか書けませんが、
> ・icResponseCompletedの時にすべてのデータを受け取っているか?
> →すべてのデータを受け取らないで、.StillExecuteメンバがFalseに変化するかどうかも確かめると
> いいか
> も。
> そしたら、すべてのデータを受け取って、変化するかどうかを見る。
> …まぁ、別にしなくてもいいですけどねぇ…
一応、現在はGetChunkで取得するデータが0になるまで
処理をまわす様にしてますので、おそらく全てのデータを
取得出来てはいると思うのですが
もし、認識間違いなどありましたらご指摘下さい。
> 長文失礼しました。
いえいえ、本当にありがとうございました。
引き続き、調査したいと思います。
#やはりブレイクを打つと上手く動作するんです。。
処理が早すぎるのかと思って、空ループとか入れてみたんですが
やはり駄目でしたorz