问题描述
为什么wmic process get name,commandline,processid,executablePath
中的某些进程未显示ExecutablePath
的值?
但是我可以在taskmanager中找到它吗?
解决方法
谢谢大家,尤其是@Eryk Sun,这是我为其他将遇到相同问题的人提供的简单解决方案。
import com.sun.jna.platform;
String getExPath(int pid) {
Kernel32 kernel32 = Kernel32.INSTANCE;
WinNT.HANDLE hProcess = kernel32.OpenProcess(WinNT.PROCESS_QUERY_LIMITED_INFORMATION,false,pid);
char buffer[] = new char[1024];
IntByReference size = new IntByReference(buffer.length);
kernel32.QueryFullProcessImageName(hProcess,buffer,size);
return new String(buffer).trim();
}
我一直在寻找类似的方法来获取过程的命令行,但并没有成功。我感谢您的建议。