这个好多年没发布更新了,找个来试试先
Pointer rect = new Pointer(MemoryBlockFactory.createMemoryBlock(4 * 4));
JNative ja = new JNative("User32.DLL", "GetWindowRect");
ja.setRetVal(Type.INT);
int p = 0;
ja.setParameter(p++, 0x27050a);// 窗口的句柄
ja.setParameter(p++, rect);
ja.invoke();
System.out.println("RetVal=" + ja.getRetVal());
ja.dispose();
byte[] bb = rect.getMemory();
for (int i = 0; i < bb.length; i++) {
System.out.print(bb[i] + " ");
}
System.out.print("\n");
int x = (bb[3] << 24) + (bb[2] << 16) + (bb[1] << 8) + bb[0];
int y = (bb[7] << 24) + (bb[6] << 16) + (bb[5] << 8) + bb[4];
int w = (bb[11] << 24) + (bb[10] << 16) + (bb[9] << 8) + bb[8];
int h = (bb[15] << 24) + (bb[14] << 16) + (bb[13] << 8) + bb[12];
System.out.println("x=" + x + ", y=" + y + ", w=" + w + ", h=" + h);