我在互联网上搜索了一段时间,但我找不到任何解决方案.我知道你可以获得当前的鼠标位置
PointerInfo a = MouseInfo.getPointerInfo();
Point b = a.getLocation();
Run Code Online (Sandbox Code Playgroud)
问题是在多环境屏幕中我只是相对于主屏幕获得鼠标位置.这意味着如果第二个屏幕位于我收到的主屏幕左侧,例如X:-917.0位置Y:-137.0.我知道这些值取决于屏幕分辨率和显示器的顺序.是否有可能在当前活动屏幕上获取鼠标位置?
亲切的问候
我想Windows以编程方式查询显示缩放设置:
在这种情况下,我希望它返回,125因为我将显示配置为125%缩放。根据这篇Windows API C++文章,可以使用以下代码:
// Get desktop dc
desktopDc = GetDC(NULL);
// Get native resolution
horizontalDPI = GetDeviceCaps(desktopDc,LOGPIXELSX);
verticalDPI = GetDeviceCaps(desktopDc,LOGPIXELSY);
Run Code Online (Sandbox Code Playgroud)
但是,此代码始终返回96and96对于水平和垂直DPI,这会转换为100%缩放(根据提供的表):

这个输出是错误的,因为我通过缩放仍然得到相同的结果125%。如何做呢?我正在编程,Java以便我可以C++使用JNA. Windows API解决方案是首选,但其他一切(例如.bat脚本或registry查询)也可以,只要它对于从到 的所有Windows版本都是可靠的。710