使用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