4
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Choregraphe 2.5.5 (win) のプロセス終了スクリプト(vbs)

Last updated at Posted at 2017-07-21

#はじめに
Windows版のChoregraphe2.5.5で開発をしていると、Choregrapeを終了しても関連プロセスがいつまでも残る現象が発生します。タスクマネージャーから1つ1つ終了させるのが大変なので、一括で終了させるスクリプトを作成しました。

特に qilaunch.exe や naoqi-service.exe が残るようです。Choregraphe2.4.3.28では発生していなかったため、Choregraphe2.5.5の問題ではないかと思います。
img1.PNG
img2.PNG

#環境について
今回使用した環境です。
Choregraphe 2.5.5.5 (Win)
#注意点
Choregrapheを起動したままこのスクリプトを実行しないでください。
また、実行には十分ご注意をお願いします。
#参考
こちらのサイトの情報を参考にさせていただきました。
[VBScript Tips] http://www.whitire.com/vbs/index.html
[プロセスを強制終了する] http://www.whitire.com/vbs/tips0198.html

#対象のプロセスについて
対象のプロセスは次の4つです。スクリプトの最初で指定していますので、必要に応じて変更してください。

プロセス名
choregraphe_launcher.exe
naoqi-bin.exe
naoqi-service.exe
qilaunch.exe

#vbScript

killchoreg.vbs

Option Explicit

Dim objCheckProcNameList	' チェックするプロセス名一覧

Set objCheckProcNameList = CreateObject("System.Collections.ArrayList")

objCheckProcNameList.add("choregraphe_launcher.exe")
objCheckProcNameList.add("naoqi-bin.exe")
objCheckProcNameList.add("naoqi-service.exe")
objCheckProcNameList.add("qilaunch.exe")

Dim objProcList		' プロセス一覧
Set objProcList = GetObject("winmgmts:").InstancesOf("win32_process")

Dim strProcName		' 終了するプロセス名
Dim objProcess		' プロセス情報

Dim lngKillNum
ReDim lngKillNum(objCheckProcNameList.Count)

Dim cnt
For cnt = 0 to UBound(lngKillNum)
	lngKillNum(cnt) = 0
Next

For Each objProcess In objProcList
	cnt = 0
	For Each strProcName In objCheckProcNameList
		If LCase(objProcess.Name) = strProcName Then
			objProcess.Terminate
			If Err.Number = 0 Then
				lngKillNum(cnt) = lngKillNum(cnt) + 1
			Else
				WScript.Echo "エラー: " & Err.Description
			End If
		End If
		cnt = cnt + 1
	Next
Next


Dim infoMessage
infoMessage = ""
cnt = 0
For Each strProcName In objCheckProcNameList
	If lngKillNum(cnt) > 0 Then
		infoMessage = infoMessage & strProcName & " を " & lngKillNum(cnt) & " 個強制終了しました。" & vbCrLf
	Else
		infoMessage = infoMessage & strProcName &" は残っていませんでした。" & vbCrLf
	End If
	cnt = cnt + 1
Next

' 終了メッセージ表示
WScript.Echo infoMessage

Set objCheckProcNameList = Nothing
Set objProcList = Nothing

#実行方法
上記のスクリプトをメモ帳などで拡張子vbsとして保存してください。
作成したvbsファイルをダブルクリックすると実行されます。

実行後は、確認および終了したプロセスについてのメッセージが表示されます。

img3.PNG

4
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?