如何在不执行流程的情况下定位流程?

时间:2016-02-11 02:48:18

标签: java process runtime

我最近遇到了以下代码:

Process proc1 = Runtime.getRuntime().exec("C:\\Program Files (x86)\\...");

这很有效。然而,一个有趣的问题。此代码实际上打开指定进程的新实例并将其存储到对象。如果该进程已经运行并且将其存储到对象,则它不会将该进程作为目标。我猜测那是在执行该操作的.exec()函数调用。如何在不打开新实例的情况下定位已经处于活动状态的进程并将其存储到我的Process对象?

注意:我尝试了明显的答案,Process proc1 = new Process("name"); Eclipse说过程无法实例化。我确实在javadoc中查找了Runtime类。据我所知,没有明显的方法能够实现我想要实现的目标。看起来像是一个简单的问题,我确定以前曾被问过,但我无法找到答案,这就是我在这里问的原因。我可能使用了错误的术语,这就是原因。

修改 我在Windows 10上

我的目标是将游戏Minecraft的过程附加到Process对象。然后,我想使用robot.keyPress(KeyEvent.VK_W);向前移动我的角色。我无法打开这个过程,因为所有这一切都是打开发射器minecraft.exe,然后我就开始了#34;欢迎"屏幕。

1 个答案:

答案 0 :(得分:1)

正如您可以从Process docs,推测,当您从代码创建子进程时,会创建进程对象。您可以使用此对象来管理进程,但运行的其他进程是您的操作系统(或与之相关的进程)。您必须与操作系统进行交互才能对它们进行任何操作。

this answer.

中可以找到在Windows中查找和终止进程的示例