VB6.0用掲示板の過去のログ(No.2)−VBレスキュー(花ちゃん)
[記事リスト] [新規投稿] [新着記事] [ワード検索] [管理用]

投稿日: 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


- 関連一覧ツリー (★ をクリックするとツリー全体を一括表示します)

- 返信フォーム (この記事に返信する場合は下記フォームから投稿して下さい)

- VBレスキュー(花ちゃん) - - Web Forum -