Windows,为什么即使以管理员身份运行程序也无法将字体移动到字体文件夹?

问题描述 投票:0回答:1

我试图让我的代码将字体文件(

.ttf
)安装到计算机上,以便程序可以使用它。我尝试通过将
.ttf
文件移动到
C:/Windows/Fonts
文件夹中来实现此目的。为了做到这一点,程序需要管理员权限,因此我使用 PyUAC 来授予此权限。不过,我还是得到了
[Errno 13] Permission denied: 'C:\\Windows\\Fonts'
。有没有办法解决这个问题,或者我尝试的方法是不可能的?

代码:

import pyuac
if pyuac.isUserAdmin() == False:
    try:
        pyuac.runAsAdmin()
        INITIALIZEFONT()
    except: #User denied administrator permission
        pass
else: #pyuac.isUserAdmin() == True:
    INITIALIZEFONT()
from shutil import copyfile
def INITIALIZEFONT():
    try:
        fontPath = 'C:\\myPath\\Copperplate.ttf'
        copyfile(fontPath, 'C:\\Windows\\Fonts')
    except Exception as err:
        print(err)
        breakpoint()
        input()

我的断点确认该程序确实具有管理员权限。

[Errno 13] Permission denied: 'C:\\Windows\\Fonts'
> c:/MYPATHHERE.py(19)INITIALIZEFONT()
-> input()
(Pdb) pyuac.isUserAdmin()
True
(Pdb)

这个问题不应被视为重复,因为OP询问如何移动文件,而不是关于权限。

python windows fonts uac
1个回答
0
投票

这是因为

C:\Windows\Fonts
文件夹不是真正的文件夹。

您不能也不应该尝试在那里复制字体文件。您应该使用 AddFontResource

迈克尔·卡普兰的额外阅读(翻录):

关于 Windows 中的字体文件夹,第 1 部分(又名我们在谈论什么?)

© www.soinside.com 2019 - 2024. All rights reserved.