在Java中,从windowHandle获取进程ID是否可行,反之亦然?我们可以选择从Java中的windowHandle获取线程
User32.INSTANCE.GetWindowThreadProcessId(desktopWindow.getHWND(),null);
但如何将此线程与processId关联起来
hs1rzwqc1#
从GetWindowThreadProcessId开始[out,可选] lpdwProcessId类型:语言指向接收进程标识符的变量的指针。如果此参数不为NULL,GetWindowThreadProcessId将进程的标识符复制到变量;否则,它不工作。换句话说,传递一个IntByReference,然后获取它的值。例如(省略错误检查):
IntByReference
IntByReference lpdwProcessId = new IntByReference(); User32.INSTANCE.GetWindowThreadProcessId(desktopWindow.getHWND(), lpdwProcessId); Optional<ProcessHandle> processHandle = ProcessHandle.of(lpdwProcessId.getValue());
1条答案
按热度按时间hs1rzwqc1#
从GetWindowThreadProcessId开始
[out,可选] lpdwProcessId
类型:语言
指向接收进程标识符的变量的指针。如果此参数不为NULL,GetWindowThreadProcessId将进程的标识符复制到变量;否则,它不工作。
换句话说,传递一个
IntByReference
,然后获取它的值。例如(省略错误检查):