Saturday, March 25, 2006

ログオンスクリプトから別プロセス

Windowsのログオンスクリプトから呼び出している、いくつかの子スクリプトが、ログオンスクリプトの終了とともに落ちてしまう。親子関係があるので仕方ないと思うのだが、子スクリプトを実行させるのに

WshShell.Run("hoge.js", 0, true);

して実行完了のステータス(0など)が戻るまでは次のステートメントに進まないようにしていてもだめな様子。ログオンスクリプトの最後で眺めにSleepさせると、呼び出しているhoge.jsは終わっちゃうくせにログオンスクリプトは終了せずに、なかなかExplorerが起動しない。(デスクトップが現れない)

どうやらログオンスクリプトの生死に関わらず、Runしているスクリプトが落ちてしまうようだ。もちろんログオンスクリプトが終了すれば、一緒になって終了してしまう。なんでだ?
子プロセスとしてではなく、独立したプロセスとして呼び出せばとりあえず解決する問題なのだが。WSHはどうやって実行中スクリプトのプロセス管理しているのだろう。

あ、そもそもログオンスクリプトを分けてやればいいのか...。
やってみよ。

0 Comments:

Post a Comment

<< Home