微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

在这里我的代码片段:

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中做到这一点?

C + +的Windows IP发布和更新

运行C ++非托pipe控制台应用程序(不是一个batch file)没有窗口

用于Windows的Ruby Shellwords.shellescape?

自定义操作添加到QDialog中的系统菜单

如何将文本文件的行添加到ListBox(C#)上的单个项目

任务栏和Clicable应用程序图标之间的图标不匹配

如何以编程方式设置文件修改时间?

屏幕截图不像Windows预期的那样保存,但可以在iOS上使用

ruby控制台模拟器

如何在Windows上使用其他C ++编译器与CUDA?

这个问题已经在这里和这里回答了 。

基本上,没有简单的方法来完成任务,除非你使用JNI库或反射,如链接的问题所建议的。

这在Windows 7上对我完美的工作:

//Imports import com.sun.jna.*; import com.sun.jna.platform.win32.coreel32; 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); coreel32 kernel = coreel32.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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐