1

Do Loop を使用しようとしましたが、コードが do loop コマンドに遭遇すると、何らかの理由で終了します。エラーも出ません。このステートメントの後にかなりの量のスクリプトがありますが、処理も実行もされません。使用できる代替方法はありますか、それとも間違っていますか?

Do while b = vbRetry
msgbox "Remote Keyboard Control accepted from ip 346.195.639.63"
msgbox "Attempting to Block Connection..."
b = msgbox("Could not block connection.", vbCritical+vbAbortRetryIgnore+vbSystemModal)
Loop
4

1 に答える 1

5

bこの問題は、適切に初期化していないことが原因です。whileステートメントが最初に行うことは、ループ条件を評価することです。あなたの場合、次のことが起こります:
-bは未定義です。
-bに等しいvbRetryですか? いいえ、ループを停止しましょう (ループを開始する前に)。

少なくとも 1 回ループする必要があるため、スクリプトを次のように書き直す必要があります。

Do 
  msgbox "Remote Keyboard Control accepted from ip 346.195.639.63"
  msgbox "Attempting to Block Connection..."
  b = msgbox("Could not block connection.", vbCritical+vbAbortRetryIgnore+vbSystemModal)
Loop while b = vbRetry

これは、「少なくとも 1 回ループしてから、b が vbRetry と等しいかどうかを確認する」ことを意味します。

構文が正しいことを 100% 確信しているわけではないことに注意してください。しばらくの間 vbScript を使用していません (しゃれた意図はありません)。

于 2013-02-05T01:31:17.610 に答える