java取窗口句柄_如何获取Java中的所有窗口句柄列表(使用JNA)?
最新版本的JNA已經(jīng)有了一些應(yīng)該解決的問題(作為JNA的作者之一,Luke Quinane,聲明here)。如果您使用最新版本并檢查JNA API,您將看到WinUser.WNDENUMPROC接口的方法實際上使用WinDef.HWND作為其參數(shù),而不是long或int。
例如:
import com.sun.jna.Native;
import com.sun.jna.Pointer;
import com.sun.jna.platform.win32.WinDef.HWND;
import com.sun.jna.platform.win32.WinUser;
import com.sun.jna.platform.win32.WinUser.WNDENUMPROC;
import com.sun.jna.win32.StdCallLibrary;
public class TryWithHWND {
public interface User32 extends StdCallLibrary {
User32 INSTANCE = (User32) Native.loadLibrary("user32", User32.class);
boolean EnumWindows(WinUser.WNDENUMPROC lpEnumFunc, Pointer arg);
int GetWindowTextA(HWND hWnd, byte[] lpString, int nMaxCount);
}
public static void main(String[] args) {
final User32 user32 = User32.INSTANCE;
user32.EnumWindows(new WNDENUMPROC() {
int count = 0;
@Override
public boolean callback(HWND hWnd, Pointer arg1) {
byte[] windowText = new byte[512];
user32.GetWindowTextA(hWnd, windowText, 512);
String wText = Native.toString(windowText);
// get rid of this if block if you want all windows regardless of whether
// or not they have text
if (wText.isEmpty()) {
return true;
}
System.out.println("Found window with text " + hWnd + ", total " + ++count
+ " Text: " + wText);
return true;
}
}, null);
}
}
總結(jié)
以上是生活随笔為你收集整理的java取窗口句柄_如何获取Java中的所有窗口句柄列表(使用JNA)?的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ati自定义分辨率_在Windows 1
- 下一篇: General Mission Anal