这与检测到whether字体已安装不同。我正在制作WPF应用程序,我希望该应用程序能够对用户实时安装或卸载字体作出反应。我怎样才能做到这一点?例如,是否可以使用任何方法与Windows字体缓存服务进行交互?
答案 0 :(得分:1)
正如Jimi所建议的那样,在主窗口中侦听WM_FONTCHANGE
消息使我能够检测到何时添加或删除了字体。
答案 1 :(得分:0)
也许是2种方式之一
hackiest 方式可能监视%windir%\fonts
文件夹,但是您将无法保证它们已加载资源并且可用< / p>
将DLL注入单元写入 hook 并代理AddFontResource
/ AddFontResourceEx
Api调用,然后您将知道何时加载了字体资源
您可能会发现这对于了解如何将字体加载到系统中很有用
Font Installation and Deletion
应用程序只能使用字体来绘制文本 驻留在指定设备上或安装在系统字体表中。 字体表是一个内部数组,用于标识所有非设备 应用程序可用的字体。一个应用程序可以 检索设备上当前安装或存储的字体的名称 在内部字体表中,通过调用EnumFontFamilies或 选择字体功能。
...