9.8.3 TerminateProcess (プロセスを強制終了する)
- 機能
-
指定されたプロセスIDのプロセスを強制終了します。
- 形式
TerminateProcess ( ProcessId 〔, Code〕 )
- 指定項目
-
- ProcessId
-
プロセスIDを数値,または値を格納した変数名で指定します。
このプロセスIDは,GetProcessCountコマンドで引数に返される値です。
また,JP1/Script 06-00以降では,Exec,およびNetExecコマンド実行時に返される_EXEC_ID_予約変数を指定することができます。この場合,Exec,およびNetExecコマンドから終了待ちをしない指定で呼び出した実行ファイルのプロセスを強制終了します。
- Code
-
強制終了するプロセスに対する終了コードを数値,または値を格納した変数名で指定します。
この値を省略した場合は,0が仮定されます。
- 説明
-
指定されたプロセスIDのプロセスを強制終了します。コマンドが正常に実行された場合は真(True)を,エラーが発生した場合は偽(False)を,コマンドの実行結果として返します。
また,指定されたプロセスIDのプロセスが存在しない場合は,常に真(True)を返します。
- 補足
-
-
このコマンドが実行された場合,イベントビューアのアプリケーションログにイベントログを出力します。イベントログのイベントIDは7になります。
ただし,実行環境で定義されたコマンドラインやレジストリのコマンドラインに/NOEVLOGや/NOEVLOG(7)などの指定がある場合,イベントログの出力を抑止します。
-
管理者権限でスクリプトファイルを実行してください。詳細は,「1.8.2 コマンドの動作」を参照してください。また,管理者権限で実行しなかった場合,他ユーザで実行中のプロセスを強制終了できません(スクリプトプロセスは強制終了できます)。
-
- 例
' 起動中のプロセス"ABC"のうち最初に起動されたプロセス以外のプロセスを ' 強制終了する。 Dim pCnt ,pIdBuff ,seppId pCnt = GetProcessCount ( "ABC" ,pIdBuff ) If pCnt > 1 Then For i = 2 To pCnt seppId = SeparateStr ( pIdBuff ,";" ,i ) TerminateProcess ( seppId ) Next End If
- 対象バージョン
-
JP1/Script 05-20以降