今天在调试awt的robot鼠标定位问题,每次移动的位置都不一样,最后定位到robot在java1.8下有bug,系统也不能随便升级java版本,没办法只能放弃这种方式。
后来又选中了jna、jna-platform的方式调用,下面是大概的步骤,供日后和大家参考:
1、引入依赖jar包
<dependency>
<groupId>net.java.dev.jna</groupId>
<artifactId>jna</artifactId>
<version>4.5.1</version>
</dependency>
<dependency>
<groupId>net.java.dev.jna</groupId>
<artifactId>jna-platform</artifactId>
<version>4.5.1</version>
</dependency>
2、示例代码
WinDef.HWND hwnd = User32.INSTANCE.FindWindow(null, "postman");
if (hwnd == null) {
System.out.println("TSITSMonitor is not running");
} else {
WinDef.RECT win_rect = new WinDef.RECT();
User32.INSTANCE.GetWindowRect(hwnd, win_rect);
int win_width = win_rect.right - win_rect.left;
int win_height = win_rect.bottom - win_rect.top;
User32.INSTANCE.MoveWindow(hwnd, 300, 100, win_width, win_height, true);
}
postman为窗口标题
注意点:以上方式是winapi的调用模式,对dotnet开发的窗体不好用,失败!