Windowsのダイヤルアップ接続の際に、スクリプトを実行しています。
回線接続後、回線接続した相手側とのデータのやり取りの結果により、スクリプトの実行を途中で停止し、
更に、その後の接続処理(PPP接続処理)を停止(キャンセル)することは可能でしょうか?
その手順を教えてください。
<現在までに試した結果>
相手側とのデータが指定するものであった場合、HALTする。
→スクリプトが途中で終っただけで、接続処理は続行された。
不可能であるなら回答は不要です。可能である場合、
その手順(スクリプト(*.scpファイル)の記述法?)を教えてください。
手元に実環境が無い為、過去の実績と検索に頼った回答となります。
あまり綺麗なやり方ではありませんが、モデム側で回線を切ってやれば中断は可能です。
1)モデムがコマンドモードであれば、モデムに回線切断要求を送ってやります。
~~~~~ 既存の処理 ~~~~~ AbortConnect: transmit "ATH^M" waitfor "OK" halt goto Done ~~~~~ 既存の処理 ~~~~~ Done: endproc
2)モデムがコマンドモードでない場合、コマンドモードにしてから切断要求を送ってやります。
※コマンドモードへの移行受付を10秒間・3回待つようにしていますが、この値はご自身の環境に応じて変更してください。
integer nTimeOut = 10 integer nRetryCmd = 3 ~~~~~ 既存の処理 ~~~~~ AbortConnect: while 0 < nRetryCmd do transmit "+++" delay 2 waitfor "OK" then HangLine until nTimeOut endwhile HangLine: transmit "ATH^M" waitfor "OK" halt goto Done ~~~~~ 既存の処理 ~~~~~ Done: endproc
※一般的なATコマンドで記述していますが、念のためお使いの機器(モデム)のATコマンド一覧を御確認ください。
また、うまく動作しない場合はターミナルから手動でコマンドを入力して試してみてください。
http://technet.microsoft.com/en-us/library/cc751039.aspx
手元に実環境が無い為、過去の実績と検索に頼った回答となります。
あまり綺麗なやり方ではありませんが、モデム側で回線を切ってやれば中断は可能です。
1)モデムがコマンドモードであれば、モデムに回線切断要求を送ってやります。
~~~~~ 既存の処理 ~~~~~ AbortConnect: transmit "ATH^M" waitfor "OK" halt goto Done ~~~~~ 既存の処理 ~~~~~ Done: endproc
2)モデムがコマンドモードでない場合、コマンドモードにしてから切断要求を送ってやります。
※コマンドモードへの移行受付を10秒間・3回待つようにしていますが、この値はご自身の環境に応じて変更してください。
integer nTimeOut = 10 integer nRetryCmd = 3 ~~~~~ 既存の処理 ~~~~~ AbortConnect: while 0 < nRetryCmd do transmit "+++" delay 2 waitfor "OK" then HangLine until nTimeOut endwhile HangLine: transmit "ATH^M" waitfor "OK" halt goto Done ~~~~~ 既存の処理 ~~~~~ Done: endproc
※一般的なATコマンドで記述していますが、念のためお使いの機器(モデム)のATコマンド一覧を御確認ください。
また、うまく動作しない場合はターミナルから手動でコマンドを入力して試してみてください。
http://technet.microsoft.com/en-us/library/cc751039.aspx
回答有難うございます。参考になります。
トリッキーですが、全然、よいと思います。
ATコマンドで直接、制御できるとは知らなかったので、「切る」という発想はありませんでした。
確かに、
『接続処理(PPP接続処理)を停止(キャンセル)する』
場合は、回線自体を切断することで問題ありません。
現在、手元に環境がないため、確認次第、報告させて頂きます。
(コメント欄に結果を報告致します。)
但し、
回線接続した相手側とのデータのやり取りの結果により、
「意図的に切断したのか?」
それとも
「通信障害により切断してしまったのか?」
の判定ができればもっとよいのですが。。
最初に記載しておければよかったのですが、、、
スクリプトは、RasDial(電話帳)を用いて、プログラム上から実行する予定なのです。
まずはお願いなのですが、
お使いのパソコンのOSやスクリプト言語など、
何も判らないと回答は難しくなりますので、必須だとご記憶ください。
不適当な回答が集まっても混乱をきたしますから、私への返信欄か、
あるいは、コメント欄を開く設定に変更してコメント欄)に、
書き加えておくことを勧めます。
実は玉子焼きより、目玉焼きの方が好きなんで、、ちょっと無理ですね。
すいません。
回答有難うございます。参考になります。
トリッキーですが、全然、よいと思います。
ATコマンドで直接、制御できるとは知らなかったので、「切る」という発想はありませんでした。
確かに、
『接続処理(PPP接続処理)を停止(キャンセル)する』
場合は、回線自体を切断することで問題ありません。
現在、手元に環境がないため、確認次第、報告させて頂きます。
(コメント欄に結果を報告致します。)
但し、
回線接続した相手側とのデータのやり取りの結果により、
「意図的に切断したのか?」
それとも
「通信障害により切断してしまったのか?」
の判定ができればもっとよいのですが。。
最初に記載しておければよかったのですが、、、
スクリプトは、RasDial(電話帳)を用いて、プログラム上から実行する予定なのです。