chaohershi / cclose

A Windows utility that helps you close windows faster or pin windows always on top.

Home Page:https://chaohershi.github.io/cclose/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

多屏幕时仅在主屏幕生效

taooceros opened this issue · comments

你好,请问你用的CClose的版本号是多少?以及具体哪个功能无效?我测试了双屏下v1.3.12.0所有功能在第二屏都是正常的,不论显示方式是复制还是扩展。

唔我用的也是1.13.12

貌似是鼠标点击/长安标题栏的功能无法使用,双击esc是可以的,移动鼠标到关闭窗口也是可以的

显示方式是扩展

会不会是因为你没有安装在默认路径(Program Files)下?标题栏功能会受到Windows权限隔离的影响。如果对象窗口是高权限窗口,比如资源管理器,没有安装在Program Files的CClose需要以管理员身份运行,标题栏相关功能才能生效。

是在Program Files 下的,且仅在第二屏失效

hmm……那比如一个窗口拖动到两屏幕中间,位于第一屏的标题栏部分就能操作,位于第二屏的标题栏部分就没反应是这样吗?

另外问下你的两个屏幕分辨率各是多少,第二屏是不是竖屏。因为我这边没能复现,所以会问的问题会有点多,不好意思。

不好意思前几天没看消息,我确实是用的竖屏,关于放在屏幕中间我会回去测试一下,然后再回复

第二屏是竖屏的2k,第一屏是1080p

那比如一个窗口拖动到两屏幕中间,位于第一屏的标题栏部分就能操作,位于第二屏的标题栏部分就没反应是这样吗?

对的

确认了,爽!感谢反馈!最近会修复。

最后发现和屏幕分辨率或者横屏竖屏没有直接关系(代码也不涉及),和主副屏排列方式有关。副屏幕设置在主屏幕右侧一切正常,但设在左侧则标题栏功能失效。原因是鼠标屏幕坐标以主屏左上角为原点,鼠标移到左侧副屏时,x坐标变为负数。程序没有对负数进行处理,造成bug。

TODO:
DONE:

SendMessage, WM_NCHITTEST, , x | (y << 16), , ahk_id %win%

修复bug↑

  • 处理鼠标x坐标为负的情况(如副屏位于主频左侧,副屏x坐标为负)
  • 处理鼠标y坐标为负的情况(如主屏幕为横屏,副屏幕为高出主屏幕的竖屏,副屏高出部分y坐标为负)

参考:https://stackoverflow.com/questions/4471231/get-the-coordinates-of-a-wm-nchittest-message/6388667#6388667

测试不同主副屏情况(大小、位置)
测试三屏

厉害兄弟,确实是在左屏的

出新的发行版前我还想改改GUI,感觉会拖一段时间,我先把修完bug的主程序附上。直接替换安装文件夹里的原CClose.exe就行,不影响未来升级或卸载。

CClose 1.3.14.0-beta.zip

🙂😉