snowie2000 / mactype

Better font rendering for Windows.
https://mactype.net
GNU General Public License v3.0
9.99k stars 442 forks source link

Edge浏览器UI界面使用了MacType,但页面没有成功使用 #943

Open huzhangyang opened 1 year ago

huzhangyang commented 1 year ago

MacType 2023.5.31,配置文件中的UseDirectWrite已打开并确认生效:RenderingMode=5,ClearTypeLevel=1

显示器分辨率为2K,125%比率,Edge中小字号没有抗锯齿效果,如图 屏幕截图 2023-06-03 185557

通过Nvidia DSR缩放至4K分辨率 200%比率时,同样的页面有抗锯齿效果,如图 屏幕截图 2023-06-03 190649

已按维基(https://github.com/snowie2000/mactype/wiki/Google-Chrome) 中添加注册表配置,并且在2K分辨率下使用CentBrowser时可以正常看到抗锯齿效果,怀疑是否该注册表配置对Edge不生效?因为在原始注册表中没有看到HKLM\Software\Policies\Microsoft\Edge这部分,是否Edge不从该位置读取?

snowie2000 commented 1 year ago

简单来说,你的配置对edge根本就完全没生效。 你看到的高分屏下生效实际上是dw在高分屏下关闭了grid fitting而已。

huzhangyang commented 1 year ago

简单来说,你的配置对edge根本就完全没生效。 你看到的高分屏下生效实际上是dw在高分屏下关闭了grid fitting而已。

我调整RenderingMode并重启Edge能看到不同的效果,并且2K分辨率下的部分字也是能看到抗锯齿效果的

屏幕截图 2023-06-05 221737 屏幕截图 2023-06-05 221815

huzhangyang commented 1 year ago

OK,经过一些折腾,发现了如下现象:

  1. edge://policy/ 中能看到对应的策略,所以注册表是成功添加了的
  2. 无论RendererCodeIntegrityEnabled是否开启,在ArmBreaker=1或2时,RenderingMode都可以正常对收藏夹、标签页等生效(如上图),但进程中查看打开的页面对应的PID,都是已停用并且无法启用。 image
  3. 4K分辨率下的效果确实是directwrite的原生效果(仅在高DPI下开启抗锯齿?)导致

请问有可能导致这样的原因或者解决办法吗?附件中是我所用ini配置,谢谢

RWBG.zip

snowie2000 commented 1 year ago

无法重现问题,我这边使用你的配置是可以生效的,可能是和CPU以及win11有关?

huzhangyang commented 1 year ago

FYI,我是5600x CPU+最新补丁的Win11

digiant commented 1 year ago

edge字体渲染没救了,建议使用Cent浏览器,关掉DWrite,mactype可以渲染的到。 最好再配合油猴脚本https://greasyfork.org/scripts/416688#guide,强制修改网页字体。 font

cst4you commented 1 year ago

微软不知道搞了什么保护措施, 只有在系统启动后的一段时间内, 启动 Edge, MacType 才能勾到 webview 部分, 然后如果你关掉, 再开, 就再也勾不到了

VirgilChen97 commented 1 year ago

win 10 2021 LTSC 可以复现,即使是增加注册表项,也无法渲染 edge 了

chawyehsu commented 1 year ago

@snowie2000 By switching the loading mode of auto launched MacType from Service Mode to Standalone Mode, I found that text rendering starts to work on new tabs. However it seems to be available only for a short time. Is it expected? 通过将自启动的 MacType 从服务模式改变到托盘独立加载模式,我发现渲染对新打开的标签页生效了,但似乎是短暂的,这是预期/已知可行的吗?

image

In the figure, no browser was restarted during the mode switching. Text rendering worked on the tab which is newly created after mode switching on the left, didn't work on the one created before mode switching on the right. And one interesting thing is text rendering stopped working on browser's UI/menu after the mode switching. 图中是同一个浏览器主进程,整个过程没有重启。左侧是切换模式后新开的标签页,右侧是切换模式前打开的标签页。一个有趣的点是,切换模式前渲染对菜单栏是生效的,切换模式后反而失效了。

L33Z22L11 commented 7 months ago

It comes into effect after moving it to C:/Program Files directory.

把程序放在 C:/Program Files 目录下就能生效了,原因未知。

snowie2000 commented 7 months ago

这个问题以前讨论过,但我不知道issueid是多少了。 由于Windows下的安全性设计,UWP应用只能加载信任dll,必须拥有微软签名(任何第三方的有效签名都不行)才能加载,所以mactype是无法加载到这类应用中的。 但其中存在例外,就是c:\program files和system32下的dll可以不受此限制,因此mactype只能安装在这两个目录下,其他都不行。

snowie2000 commented 7 months ago

请参照此文:https://blog.nektra.com/2013/02/25/injecting-a-dll-in-modernui-metro-app-win8/

miku390 commented 7 months ago

It comes into effect after moving it to C:/Program Files directory.

把程序放在 C:/Program Files 目录下就能生效了,原因未知。

您好请问是把MacType.exe和dll直接放到C:/Program Files这个路径下而不是在这个路径下的文件夹吗 试过之后对页面的渲染还是没有生效,看进程加载里面也是停用且没法启用的

snowie2000 commented 7 months ago

放在这个路径下的文件夹里面就可以了,但是需要读取权限才行。

L33Z22L11 commented 7 months ago

我将程序目录放在了 C:\Program Files\MacType\ 下,在 MacType 程序的详细信息里可以看到对 Edge 和 Edge Webview 2 启用了渲染。

miku390 commented 7 months ago

那这样我程序路径没有问题,我选的是服务加载,重启电脑之后还是对浏览器页面的渲染还是没有生效 不知道是程序权限问题,还是win10或者edge的版本问题 win10是22H2,edge的chromium版本122.0.6261.70,MacType 2023.5.31

billowssun commented 1 month ago

一样的问题,浏览器可以通过字体渲染插件解决,但是电脑部分应用无解,比如新版QQ和微信。

billowssun commented 1 month ago

一样的问题,浏览器可以通过字体渲染插件解决,但是电脑部分应用无解,比如新版QQ和微信。

用管理员托盘加载模式,重启电脑解决了