我需要检查外部窗口(另一个java程序,但不是由我正在处理的程序控制)是否使用标题打开,如果打开,则根据Java中的用户命令最大化或最小化它(我只知道窗口的标题,没有别的).谷歌只说我可以winapi用来获取窗口句柄并使用句柄操纵它,但我无法找到如何做到这一点.
我可以在这里找到关于如何使用JNI的参考: 在Java Swing中如何获得对窗口的Win32窗口句柄(hwnd)引用?.是否可以在不使用JNI的情况下执行此操作?
有人可以帮我理解如何做到这一点.
感谢致敬
Luk*_*ane 18
我刚刚在JNA中添加了很多与win32相关的窗口函数.你可以在这里看到详细信息.
// Find and minimize a window:
WinDef.HWND hWnd = User32.INSTANCE.FindWindow("className", "windowName");
User32.INSTANCE.ShowWindow(hWnd, WinUser.SW_MINIMIZE);
Run Code Online (Sandbox Code Playgroud)
您还可以枚举所有窗口:
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...
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
13252 次 |
| 最近记录: |