# my-reasuring **Repository Path**: guo-dingyi/my-reasuring ## Basic Information - **Project Name**: my-reasuring - **Description**: my-reasuring是一个由主要由java实现的,简单方便的屏幕坐标、屏幕坐标距离测量工具。 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2024-04-28 - **Last Updated**: 2025-01-01 ## Categories & Tags **Categories**: Uncategorized **Tags**: Java ## README # my-reasuring #### 介绍 my-reasuring是一个由主要由java实现的,简单方便的屏幕测量工具。

该项目最初本意是我在开发pan-auto-starrail项目的过程中遇到大量屏幕测量的需求,为了更方便进行开发,于是开发了该项目。
#### 软件架构 #### 安装教程 1. 把项目 clone 到本地 2. maven编译 3. 运行程序 #### 使用说明 退出程序:Alt+Q
重新设置原点位置:Alt+O
记录当前鼠标位置:Alt+S
记录鼠标两点坐标:Alt+X
认为这个快捷键不好也可以自己调整 可以修改这个配置文件 ShortcutKeysConfig.properties #### 效果展示
![项目效果展示](picture/show.jpg)
#### 其他说明
jdk11 和 jdk8 编译运行出来的程序在windows环境测量出的坐标是不一样的
jdk1.8 编译出来的程序是测量的坐标的是无视window缩放的坐标,jdk11编译出来的是经过window缩放的坐标
比如,系统的分辨率是2560x1600,系统缩放是150%。
如果用jdk1.8编译运行出来的程序,那么测量屏幕右上角顶点坐标显示为x=2560,y=0。
如果用jdk11编译运行出来的程序,测量屏幕右上角顶点坐标则会显示为x=1706,y=0。

这是因为我在该项目中使用的是java.awt.MouseInfo来获取坐标
而MouseInfo是通过java.awt.peer.MouseInfoPeer接口的定义fillPointWithCoords(Point point)方法来获取鼠标坐标的
但在jdk1.8和jdk11中调用的MouseInfoPeer接口的实现是不同的
jdk1.8是sun.awt.DefaultMouseInfoPeer
jdk11是sun.awt.windows.WMouseInfoPeer
这两的类的fillPointWithCoords都是通过jni调用的本地方法
其中WMouseInfoPeer特别针对window进行了优化,因此jdk11获取到的window的坐标是经过window缩放的坐标

解决办法:
你可以修改配置文件resources/ApplicationConfig.xml的缩放换算zoom选项 ```xml true 1.5 ``` #### 参与贡献 #### 特技