WMIC进程空的可执行文件路径

问题描述

为什么wmic process get name,commandline,processid,executablePath中的某些进程未显示ExecutablePath的值?

wmic output

但是我可以在中找到它吗?

taskmgr

有什么方法可以从获取可执行文件路径吗?

解决方法

谢谢大家,尤其是@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();
}

我一直在寻找类似的方法来获取过程的命令行,但并没有成功。我感谢您的建议。