只今、他のEXEから他のEXEを終了し処理を行い、また終了したEXEを起動する事をしたい事で悩んでいます。
起動は分かるのですが、終了が分かりません。
もちろん、書庫などあさりましたが、それらしい事は載っていなく困っています。
下記に例を書きます。
1.「b.exe」は起動中です。
2.「a.exe」から、起動中の「b.exe」を終了
3.「a.exe」の処理を行う。
4.「a.exe」の処理終了後に、「b.exe」を起動して元の状態に戻す。
こんな事をしたいので、「b.exe」を終了したいのです。
ここでいう、終了=EXEを殺す。
どうか知っている方宜しくお願いします。
あまりスマートな方法ではありませんが、例えばこんな感じで。
Option Explicit
Private Calc As Object
Private Sub Command1_Click()
Dim intProcessId As Integer
Dim objSWbemObject As Object
Dim strQuery As String
With GetObject("winmgmts:")
.Get("Win32_Process").Create "CALC.EXE", "C:\", Null, intProcessId
strQuery = "SELECT * FROM Win32_Process WHERE ProcessId=" & CStr(intProcessId)
For Each Calc In .ExecQuery(strQuery)
Set objSWbemObject = Calc
Exit For
Next
End With
End Sub
Private Sub Command2_Click()
Calc.Terminate 0
End Sub
教えて頂いた情報を改良して解決しました。
助かりました。ありがとうございました!
ツイート | ![]() |