使用Java处理外部Windows

我需要使用标题检查是否打开了一个外部窗口(另一个Java程序,但不受我正在使用的程序控制),如果打开了,则根据Java中的用户命令将其最大化或最小化(我只知道窗口的标题,什么也不知道)。Google只说我可以winapi用来获取窗口句柄并使用该句柄对其进行操作,但是我找不到如何执行此操作。

我可以在此处找到有关如何使用JNI的参考: 在JavaSwing中,如何获取对窗口的Win32窗口句柄(hwnd)引用?。是否可以在不使用JNI的情况下执行此操作?

有人可以帮助我了解如何执行此操作。

感谢致敬

回答:

我刚刚在JNA中添加了许多与Win32相关的窗口函数。您可以在此处查看详细信息。

// Find and minimize a window:

WinDef.HWND hWnd = User32.INSTANCE.FindWindow("className", "windowName");

User32.INSTANCE.ShowWindow(hWnd, WinUser.SW_MINIMIZE);

您还可以枚举所有窗口:

final WinDef.HWND[] windowHandle = new WinDef.HWND[1];

User32.INSTANCE.EnumWindows(new WinUser.WNDENUMPROC() {

@Override

public boolean callback(WinDef.HWND hwnd, Pointer pointer) {

if (matches(hwnd)) {

windowHandle[0] = hwnd;

return false;

}

return true;

}

}, Pointer.NULL);

// Minimize or maximize windowHandle[0] here...

以上是 使用Java处理外部Windows 的全部内容, 来源链接: utcz.com/qa/421641.html

回到顶部