【发布时间】:2021-08-26 10:31:35
【问题描述】:
经过一番研究,我发现我可以为当前用户安装一个 truetype 字体,只需在HKCU\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Fonts 中创建一个新的字符串值,并将 NAME 设置为字体的名称,并将 DATA 设置为字体的路径。删除字体也类似,首先删除指定字体的字符串值,然后删除字体文件本身。
我尝试手动完成,它确实有效(安装和删除字体)。但是在 python 中重新创建所有内容让我陷入了一个问题。我可以使用上述方法安装字体,但是当我尝试删除字体时,Windows 会告诉我the font file is currently being used by "System"。我的程序能够删除注册表值,但无法删除字体文件。
我的帮助注册表编辑器功能可以在 -> https://github.com/nk521/phonts/blob/07a4d6de5165d5c19861c2f28708c60d52f33df9/core/helpers/win.py
这个函数安装字体 -> https://github.com/nk521/phonts/blob/07a4d6de5165d5c19861c2f28708c60d52f33df9/core/win.py#L15
这个函数删除一个字体 -> https://github.com/nk521/phonts/blob/07a4d6de5165d5c19861c2f28708c60d52f33df9/core/win.py#L35
这一行将生成一个PermissionError -> https://github.com/nk521/phonts/blob/07a4d6de5165d5c19861c2f28708c60d52f33df9/core/win.py#L41
【问题讨论】: