java - 通过进程Id获取进程对象

标签 java winapi process jna

如何在Java中通过某个ProcessId获取一个Process对象。

我正在使用 JNA 创建一个进程,因为我想在后台打开一个应用程序。

WinBase.STARTUPINFO startupInfo = new WinBase.STARTUPINFO();
startupInfo.dwFlags = 1;

WinBase.PROCESS_INFORMATION.ByReference processInformation = new WinBase.PROCESS_INFORMATION.ByReference();

Kernel32.INSTANCE.CreateProcess(null, "C:\\Program Files\\...", null, null, true, new WinDef.DWORD(0), Pointer.NULL, System.getProperty("java.io.tmpdir"), startupInfo, processInformation);

int prozessId = processInformation.dwProcessId.intValue();

最佳答案

这是不可能的。 ProcessProcessBuilder 的 API 不允许您为现有流程创建 Process 实例;您始终只能使用它们创建新的子进程。

关于java - 通过进程Id获取进程对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21114144/

相关文章:

c++ - Linux 中如何与进程通信?

java - 背景音乐线程在游戏中死亡而不是暂停

c++ - Win32编程隐藏控制台窗口

C - 让 WIFEXITED 返回 false 以进行调试

c++ - 等待另一个进程锁定然后解锁 Win32 互斥量

java - sleep、wait、park 的 native 实现可以依赖 RTC 吗?

C#运行进程而不卡住我的应用程序的GUI

java - 无法实例化应用程序 com.google.android.gms.common.app.GmsApplication

java - @Resource注入(inject)目标无效。仅允许设置方法 :

java - AsyncTask 中的进度条崩溃