# 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
#### 效果展示

#### 其他说明
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
```
#### 参与贡献
#### 特技