1. Уважаемые гости и пользователи форума.
    Администрация настоятельно рекомендует не регистрировать несколько аккаунтов для одного пользователя. При выявлении наличия мультиаккаунтов будут заблокированы все учетные записи данного пользователя.
    Аккаунты, зарегистрированные на временную почту будут также заблокированы.

Вопрос Установка и удаление шрифта

Тема в разделе "Nullsoft Scriptable Install System", создана пользователем Хамик, 20 дек 2016.

  1. Ветеран

    Регистрация:
    27 мар 2014
    Сообщения:
    316
    Симпатии:
    54
    Пол:
    Мужской
    Подскажите, как в nsis прописать установку и удаление своего шрифта?
     
  2. Пользователь

    Регистрация:
    8 фев 2015
    Сообщения:
    9
    Симпатии:
    1
    Пол:
    Мужской
    Хамик,

    Самое простое это скопировать их в каталог $Fonts ($WINDIR\Fonts) и операционная система их сама там подключит, либо как вариант положить их в каталоге рядом с исполняемым модулем - это уже из MSDN:


    Если стоит примерно такая задача:
    • Имеем папку с системными шрифтами Arial, Calibri, Cambria, Consolas, Courier, Meiryo, Segoe UI, Tahoma, Times New Roman
    • Необходимо обновить их в системе.
    • Если в системе присутствует более свежая версия шрифта, то не заменять.
    • Почти все они заблокированы системой, поэтому замена должна быть с перезагрузкой компа
    • Если шрифта не было в системе, то корректно зарегистрировать его в реестре.

    То достаточно поставить условие перезаписи:

    Код (Text):
    SetOverwrite ifnewer
    SetOutPatch $FONTS
    ...
    IfFileExists $FONTS\<fontfil.ext> +
    File /oname=<source_dir>\<fontname.ext>
    Goto +4
    Rename $FONTS\<fontname.ext> $FONTS\<fontname.ext.bak>
    Rename /REBOOTOK <SOURCE_DIR>\<fontname.exe> $FONTS\<fontname.ext>
    ...
    и в скрипте нужна функция отработки события REBOOT в которой ставим как одну из команд Delete $FONTS\*.bak для чистки мусора. В общем и целом идея такая. Блок кода что я привёл есть смысл оформить как функцию получающую как параметр имя обновляемого шрифтового файла. Это сократит размер кода, а главное число возможных ошибок в нём.

    Что до самого вопроса, то при копировании шрифта в каталог Фонт, винда сама его должна актуализировать и установить, удаление также, Делит/папка/имя фонта..
    Ну, как-то так...
     

Поделиться этой страницей