jna下载.PNG
jna-platform
pom.xml
net.java.dev.jna
jna-platform
如果直接引用jna-platform-5.6.0.jar,则可以直接使用本地类库中的方法,如:
//获取窗口对象
User32.INSTANCE.FindWindow(null, "xxx ");
//获取窗口中的窗口对象
User32.INSTANCE.FindWindowEx(mainWindow, User32.INSTANCE.FindWindow(classname, null), classname, null)
//遍历窗口中的窗口对象
User32.INSTANCE.FindWindowEx(needWin4, needWin5, null,null);
//WinUser.WM_CHAR为10进制的258,16进制的102,代表点击事件
//52代表数字4
User32.INSTANCE.PostMessage(window, WinUser.WM_CHAR, new WinDef.WPARAM(52), null);
jna
jna需要自定义接口
public class HelloWorld {
public interface CLibrary extends Library {
CLibrary INSTANCE = (CLibrary)Native.loadLibrary((Platform.isWindows() ? "msvcrt" : "c"), CLibrary.class);
void printf(String format, Object... args);
}
public static void main(String[] args) {
CLibrary.INSTANCE.printf("Hello, World");
}
}
sendMessageA