我正在编写一个程序来杀死和启动通过局域网连接的另一台计算机中的进程。我能够成功终止该进程。我使用 tasklist 列出进程并使用 taskkill 杀死它。要再次启动被杀死的程序,必须获得进程的路径。
有没有办法在java中做到这一点?
我认为不可能通过它的路径来杀死一个进程,但你总是可以通过它的进程名称或 ID 来杀死它。
这是我用来杀死进程的方法,例如firefox.exe。
创建一个VB脚本如下,
sub killProcess(strProcessName)
set colProcesses = GetObject("winmgmts:\\.\root\cimv2").ExecQuery("Select * from Win32_Process Where Name='" & strProcessName & "'")
if colProcesses.count <> 0 then
for each objProcess in colProcesses
objProcess.Terminate()
next
end if
end sub
killProcess "firefox.exe"
现在为了通过 Java 运行上面的脚本,使用 Process API 如下,
Process pr = Runtime.getRuntime().exec(path_to_vbscript_file, null, null);
pr.waitFor();