【发布时间】:2016-08-22 15:19:55
【问题描述】:
我正在尝试从前台窗口获取进程的名称,但我遇到了一些问题。
例如,如果我打开 Mozilla Firefox,它会注册类似“www.google.com - Mozilla Firefox”的内容。在 Photoshop 中,它会注册“filename.psd”+您正在处理的缩放或图层名称。
我想从前台窗口获取进程名称,我不希望它检测您正在处理的每一层等,我只想让它获取进程名称(photoshop.exe 或类似的东西)
目前,我正在使用它从该窗口获取前台窗口名称和进程 ID:
public String getActiveProcess(){
char[] buffer;
HWND hwnd;
String processName = ".... // ";
IntByReference IdByRef = new IntByReference();
//get window information
buffer = new char[MAX_TITLE_LENGTH * 2];
hwnd = User32.INSTANCE.GetForegroundWindow();
//get process ID from window in foreground
int processid = User32.INSTANCE.GetWindowThreadProcessId(hwnd, IdByRef);
HANDLE processHandle = Kernel32.INSTANCE.OpenProcess(processid, true, MAX_TITLE_LENGTH);
return processName;
}
【问题讨论】:
-
进程没有名字。为什么不问你想要解决的真正问题,而不是你的解决方案?
标签: java windows process window