Лучший способ использовать перечисление шрифтов - PullRequest
0 голосов
/ 01 мая 2020

VB-самоучка взломать здесь с небольшим опытом. net опыта. Большинство постов, которые я нахожу на эту тему, довольно старые, поэтому я ищу наилучшее направление, которое нужно найти, прежде чем я начну спускаться по какой-то одной кроличьей норе, и чтобы убедиться, что нет чего-то нового, что я упускаю.

Я написал приложение на vb. net, которое загружает и выгружает шрифты. Я читаю реестр, чтобы увидеть, какие шрифты загружены, читаю информацию о шрифтах непосредственно из файлов шрифтов и использую AddFontResource, RemoveFontResource и изменяю реестр при перезагрузке компьютера.

Все это работает, но как указывает этот проницательный пост , то, что он в реестре, не означает, что он перечисляет. Мы храним наши производственные шрифты на сетевом диске, и Windows 10 ужасно при переподключении после перезапуска / входа в систему, поэтому я провел значительное количество исследований по перечислению всех загруженных шрифтов, и, что удивительно, похоже, что все, что с готовностью работает.

Использование API EnumFontFamiliesEx в значительной степени ошеломляет меня (только из-за моего недостатка знаний), и даже код, который я скачал , работает относительно хорошо, но не получает некоторые из загруженных шрифтов. То же, что и ОП этой ссылки, я не понял почему, по крайней мере пока. Я изменил этот загруженный код, чтобы использовать API EnumFontFamiliesExW, как предлагалось здесь , но все еще отсутствовали шрифты.

В этом посте было предложено что-то под названием DirectWrite, которое, я думаю, часть DirectX? Посмотрев на это для нескольких, уровень разочарования привел меня сюда.

Итак, я думаю, два вопроса:

  1. (bigg ie) Есть ли что-то новее, чем EnumFontFamiliesExW?

  2. Для шрифтов OTF и TTF я читаю "Typographi c Family name" (ID 16, как определено здесь ), когда это доступно, потому что это то, что отображают продукты Adobe. Этот идентификатор даже читается с помощью EnumFontFamiliesExW? Я не видел ничего, что указывало бы на это.

Yikes, извините так долго и спасибо за чтение, если вы сделали это так далеко!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...