2017年11月
      1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30    
無料ブログはココログ

« WSHから他のWSHを操作する。(その3) | トップページ | 常駐のWSHスクリプトを外部からの指示で終了する。 »

2009年3月27日 (金)

WSHスクリプトの強制終了は避けましょう。

Excelなど、アウトプロセスサーバのオブジェクトを参照するWSHスクリプトを強制終了すると、参照カウンタが残って、サーバが終了できなくなったりします。

APIのTerminateProcess()
タスクマネジャの「プロセスの終了」
タスクスケジューラの「タスクの終了」
TaskKill.exe
CScriptのCTRL+C
WScript.ShellのExec().Terminate()
などの強制終了は避けられるなら避けたほうがよいでしょう。

一方、WScript.Timeoutによる終了ではオブジェクト参照が解放されます。

万一の暴走やハングアップの対策に、WScript.Timeoutを設定しておくとよいでしょう。
スクリプトのソース内で、WScript.Timeout=秒
コマンドラインのオプションで、//T:秒
ショートカットファイル(.WSH)で、Timeout=秒

« WSHから他のWSHを操作する。(その3) | トップページ | 常駐のWSHスクリプトを外部からの指示で終了する。 »