サーバ側のプログラムを起動するT
ASP の呼び出しをトリガーとしてサーバープログラムを起動することは ASPの標準関数では実現できません。 どうするかと言うと、Wscript.Shell オブジェクトの Runメソッドを使用します。
下記作成したサブルーティンでは第一引数に実行するプログラム名、第二引数にプログラムの終了を待つか否かを 真偽値で渡します。 True を渡せば、起動したプログラムが終了するまで ASPは次のステップを実行しません。 False を渡せば プログラムを起動してすぐに次のステップへ制御が移動します。
Sub Fnc_Shell(ByVal strPathNm, ByVal blnSynchro)
On Error Resume Next
Dim objWsShell ' WScript.SHELL
'##### Shellオブジェクトのインスタンス化 #####
Set objWsShell = Server.CreateObject("WScript.Shell")
'##### シェルを起動する #####
Call objWsShell.Run(strPathNm, 2, blnSynchro)
'### Shellオブジェクトの破棄 ###
Set objWsShell = Nothing
End Sub
| 第2引数
| ウィンドウの状態
|
| 0 |
非表示 |
| 1 |
通常サイズ |
| 2 |
最小化 |
| 3 |
最大化 |
| 4 |
通常サイズかつ非フォーカス |
| 6 |
最小化かつ非フォーカス |
|
次ではサーバ上の電卓を起動します。 Trueを引数で指定していますので、電卓が終了するまで次のステップには進みません。呼び出した後にタスクマネージャー等で Calc.exe が実行されているのが確認できます。
[ 呼び出し ]
Call Fnc_Shell("Calc", True)
|