gpt4 book ai didi

java - 如何获取Windows中正在运行的应用程序的PID?

转载 作者:行者123 更新时间:2023-12-01 13:30:25 25 4
gpt4 key购买 nike

我这里有我的代码片段:

 ArrayList<String> cmd_exec_installer = new ArrayList<String>();
cmd_exec_installer.add("file.exe");
Process proc = new ProcessBuilder(cmd_exec_installer).start();

我想要做的是获取开始执行file.exe的进程的PID。

有没有办法在Java中做到这一点?

最佳答案

这在 Windows 7 上非常适合我:

//Imports
import com.sun.jna.*;
import com.sun.jna.platform.win32.Kernel32;
import com.sun.jna.platform.win32.WinNT;


private String getWindowsProcessId(Process proc)
{
if (proc.getClass().getName().equals("java.lang.Win32Process")
|| proc.getClass().getName().equals("java.lang.ProcessImpl")) {
try {
Field f = proc.getClass().getDeclaredField("handle");
f.setAccessible(true);
long handl = f.getLong(proc);
Kernel32 kernel = Kernel32.INSTANCE;
WinNT.HANDLE handle = new WinNT.HANDLE();

handle.setPointer(Pointer.createConstant(handl));
return Integer.toString(kernel.GetProcessId(handle));

} catch (Throwable e) {
}
}
return "";
}

来源:http://cnkmym.blogspot.com/2011/10/how-to-get-process-id-in-windows.html

关于java - 如何获取Windows中正在运行的应用程序的PID?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21601466/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com