【发布时间】:2010-11-13 12:30:30
【问题描述】:
希望重返开发领域;主要是使用 Java 调用一些原生的 win32 函数(我不想在 .NET 中构建)....
谁能指出我可以使用 Java (JNI/JNA/SWIG) 从不同的运行窗口中读取标题的地方。假设您知道您尝试挂接的应用程序在内存空间的哪个位置。
【问题讨论】:
标签: java winapi java-native-interface swig jna
希望重返开发领域;主要是使用 Java 调用一些原生的 win32 函数(我不想在 .NET 中构建)....
谁能指出我可以使用 Java (JNI/JNA/SWIG) 从不同的运行窗口中读取标题的地方。假设您知道您尝试挂接的应用程序在内存空间的哪个位置。
【问题讨论】:
标签: java winapi java-native-interface swig jna
在 JNA 中:
public interface User32 extends StdCallLibrary {
User32 INSTANCE = (User32) Native.loadLibrary("user32", User32.class);
int GetWindowTextA(PointerType hWnd, byte[] lpString, int nMaxCount);
}
使用它:
byte[] windowText = new byte[512];
PointerType hwnd = ... // assign the window handle here.
User32.INSTANCE.GetWindowTextA(hwnd, windowText, 512);
System.out.println(Native.toString(windowText));
您可能希望为 HWND 使用正确的结构映射并允许 unicode 支持;您可以在JNA website 找到该信息和更多示例。
GetWindowText 函数的文档在MSDN 中提供。
JNA 的文档可在jna.dev.java.net 获得
【讨论】: