关闭 Windows 11 窗口圆角边框(无需修改系统文件/管理员权限)

5 小时 10 分钟前
 geelaw

一个简单的 Windows API 小练手:

  1. 注册 Windows 事件钩子,对每个新窗口禁用圆角;
  2. 对每个当前存在的窗口禁用圆角。

单个 .cc 文件,排除注释和空行仅 41 行,古法编程。

https://github.com/GeeLaw/DisableRoundCorners

469 次点击
所在节点    分享创造
7 条回复
loading
2 小时 11 分钟前
挂钩子,那很消耗资源了。
chutsetien
2 小时 3 分钟前
哈哈,难得见到同样超级厌恶圆角的人。

不过其实这个已经有人做过了,参: https://github.com/valinet/Win11DisableRoundedCorners
geelaw
1 小时 41 分钟前
@loading #1 是不会注入其他进程的钩子,而且只监听很少的事件、反应很快,测试没有发现性能问题。

@chutsetien #2 我知道那个方案的存在,但是那个方案需要管理员权限且会修改系统文件,这很可能导致自动更新挂掉,然后你会发现 DWM 起不来可能导致超时后蓝屏等等一系列问题……
chutsetien
1 小时 28 分钟前
@geelaw 倒不是那样,而是每次 CU 之后都得重新执行一次。
fairytale
1 小时 22 分钟前
有没有 win98 主题/doge
loading
1 小时 9 分钟前
为了方便测试,我让 ai 帮改了个 python3 版本的,按 Esc 退出并还原。

直接 python3 xx.py 即可。
还是有点圆角,不是 win8/10 的直角。

https://gist.github.com/YCF/d336cf50ec0e28a9a2902aa23c774d74
geelaw
57 分钟前
@loading #6 “不是直角”的原因单纯是 AI 写出来的是乱七八糟的:

- EVENT_OBJECT_SHOW 是 0x8002 ,而 0x8003 是 _HIDE
- EVENT_OBJECT_UNCLOAKED 是 0x8018
- DWMWCP_DONOTROUND 是 1 ,而 3 是 DWMWCP_ROUNDSMALL
- DWMWCP_ROUNDDEFAULT 不存在,正确的名字是 DWMWCP_DEFAULT ,这个数是 0
- 处理所有当前窗口的回调里面过滤莫名其妙,尤其是取消设置的时候,无论窗口是否最小化都应该重设
- if not hooks 语义错误,因为 hooks 是列表,只要安装了一个就会认为成功
- 取消设置的逻辑错误,一般地,没有办法取消,因为每个进程自己也可能调用 DSWA 来控制自己的窗口要怎么圆角

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1233009

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX