gpt4 book ai didi

java - 如何使用 Java 从 Windows 的前台窗口获取进程名称?

转载 作者:太空宇宙 更新时间:2023-11-04 12:18:44 25 4
gpt4 key购买 nike

我试图从前台窗口获取进程的名称,但遇到一些问题。

例如,如果我打开 Mozilla firefox,它会注册类似“www.google.com - Mozilla Firefox”的内容。在 Photoshop 中,它会注册“文件名.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;
}

最佳答案

假设您可以调用任意Win32函数,则可以使用 GetWindowThreadProcessId() 获取进程ID ,使用 OpenProcess() 打开句柄,并使用 GetModuleBaseName() 获取进程的可执行文件名称.

关于java - 如何使用 Java 从 Windows 的前台窗口获取进程名称?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39083253/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com