Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » Установить и удалить шрифт

Ответить
Настройки темы
Установить и удалить шрифт

Аватара для FlatX007

Ветеран


Сообщения: 553
Благодарности: 87

Профиль | Отправить PM | Цитировать


Изменения
Автор: FlatX007
Дата: 17-01-2010
Как мне устанновить шрифт ?

Я вобщем делал так.

Копирую шрифт в папку Font
Создаю пустой файл font.reg
Дальше делаю мульти реговый файл

Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Fonts]

Дальше название шрифта

Дальше добавляю в реестр ... в реестре запись появляется ... а шрифта в списке нет как мне сделать то ?
Код немогу прилепить я не со своего компьютера.

Отправлено: 20:21, 12-01-2010

 

Аватара для Yashied

Старожил


Сообщения: 206
Благодарности: 88

Профиль | Отправить PM | Цитировать


Если ты копируешь шрифт непосредственно в папку ...\WINDOWS\Fons, то в реестр не нужно ничего добавлять, оно само добавится.

Отправлено: 21:47, 12-01-2010 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Аватара для Creat0R

Must AutoIt


Сообщения: 3054
Благодарности: 1009

Профиль | Сайт | Отправить PM | Цитировать


Цитата Yashied:
Если ты копируешь шрифт непосредственно в папку ...\WINDOWS\Fons, то в реестр не нужно ничего добавлять, оно само добавится. »
Но тем не менее шрифт не устанавливается как положенно, я использую такую функцию:

Код: Выделить весь код
_FileFontInstall(@ScriptDir & "\Ethnocentric.ttf", "AutoIt Font")
ConsoleWrite(@error)

Func _FileFontInstall($sSourceFile, $sFontDescript="", $sFontsPath="")
    Local Const $HWND_BROADCAST = 0xFFFF
    Local Const $WM_FONTCHANGE = 0x1D

    If $sFontsPath = "" Then $sFontsPath = @WindowsDir & "\fonts"

    Local $sFontName = StringRegExpReplace($sSourceFile, "^.*\\", "")
    If Not FileCopy($sSourceFile, $sFontsPath & "\" & $sFontName, 1) Then Return SetError(1, 0, 0)

    Local $hSearch = FileFindFirstFile($sSourceFile)
    Local $iFontIsWildcard = StringRegExp($sFontName, "\*|\?")
    Local $aRet, $hGdi32_DllOpen = DllOpen("GDI32.dll")

    If $hSearch = -1 Then Return SetError(2, 0, 0)
    If $hGdi32_DllOpen = -1 Then Return SetError(3, 0, 0)

    While 1
        $sFontName = FileFindNextFile($hSearch)
        If @error Then ExitLoop

        If $iFontIsWildcard Then $sFontDescript = StringRegExpReplace($sFontName, "\.[^\.]*$", "")

        $aRet = DllCall($hGdi32_DllOpen, "Int", "AddFontResource", "str", $sFontsPath & "\" & $sFontName)
        If IsArray($aRet) And $aRet[0] > 0 Then
            RegWrite("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Fonts", _
                $sFontDescript, "REG_SZ", $sFontsPath & "\" & $sFontName)
        EndIf
    WEnd

    DllClose($hGdi32_DllOpen)
    DllCall("User32.dll", "Int", "SendMessage", "hwnd", $HWND_BROADCAST, "int", $WM_FONTCHANGE, "int", 0, "int", 0)
    Return 1
EndFunc
Ethnocentric.ttf

-------
“Сделай так просто, как возможно, но не проще этого.”... “Ты никогда не решишь проблему, если будешь думать так же, как те, кто её создал.”

Альберт Эйнштейн

P.S «Не оказываю техподдержку через ПМ/ICQ, и по email - для этого есть форум. ©»

http://creator-lab.ucoz.ru/Images/Icons/autoit_icon.png Русское сообщество AutoIt | http://creator-lab.ucoz.ru/Images/Ic...eator_icon.png CreatoR's Lab | http://creator-lab.ucoz.ru/Images/Icons/oac_icon.png Opera AC Community

Это сообщение посчитали полезным следующие участники:

Отправлено: 23:49, 12-01-2010 | #3


Аватара для FlatX007

Ветеран


Сообщения: 553
Благодарности: 87

Профиль | Отправить PM | Цитировать


Пасиба работает

Но "косячок" один ...если шрифт переименован и в папке Font есть с таким же названием ... то ничего непоставится. Я думаю сравнивать по метаданным (в свойствах файла) - но этоя уже сам.

Отправлено: 17:50, 15-01-2010 | #4


Аватара для FlatX007

Ветеран


Сообщения: 553
Благодарности: 87

Профиль | Отправить PM | Цитировать


А как правильно удалить шрифт ?

Удаляю из папки и из реестра он всё равно числится в списке ... и даже открывается.

Отправлено: 02:30, 17-01-2010 | #5


Аватара для Creat0R

Must AutoIt


Сообщения: 3054
Благодарности: 1009

Профиль | Сайт | Отправить PM | Цитировать


Цитата FlatX007:
как правильно удалить шрифт ? »
Примерно так:

Код: Выделить весь код
Func _FileFontUnInstall($sFontFile)
    Local Const $HWND_BROADCAST = 0xFFFF
    Local Const $WM_FONTCHANGE = 0x1D

    Local $sFontsPath = @WindowsDir & "\fonts"
    Local $sFontName = StringRegExpReplace($sFontFile, "^.*\\", "")
    If @extended Then $sFontsPath = StringRegExpReplace($sFontFile, "\\[^\\]*$", "")

    Local $aRet = DllCall("Gdi32.dll", "Int", "RemoveFontResourceW", "wstr", $sFontsPath & "\" & $sFontName)

    If IsArray($aRet) And $aRet[0] > 0 Then
        Local $iEnum = 0, $sRegVal = "", $sRegRead
        Local $sRegFontsPath = "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Fonts"

        While 1
            $iEnum += 1
            $sRegVal = RegEnumVal($sRegFontsPath, $iEnum)
            If @error <> 0 Then ExitLoop

            $sRegRead = RegRead($sRegFontsPath, $sRegVal)

            If $sRegRead = $sFontsPath & "\" & $sFontName Or $sRegRead = $sFontName Then
                RegDelete($sRegFontsPath, $sRegVal)
                DllCall("User32.dll", "Int", "SendMessage", "hwnd", $HWND_BROADCAST, "int", $WM_FONTCHANGE, "int", 0, "int", 0)
                ExitLoop
            EndIf
        WEnd
    EndIf

    Return 1
EndFunc

-------
“Сделай так просто, как возможно, но не проще этого.”... “Ты никогда не решишь проблему, если будешь думать так же, как те, кто её создал.”

Альберт Эйнштейн

P.S «Не оказываю техподдержку через ПМ/ICQ, и по email - для этого есть форум. ©»

http://creator-lab.ucoz.ru/Images/Icons/autoit_icon.png Русское сообщество AutoIt | http://creator-lab.ucoz.ru/Images/Ic...eator_icon.png CreatoR's Lab | http://creator-lab.ucoz.ru/Images/Icons/oac_icon.png Opera AC Community

Это сообщение посчитали полезным следующие участники:

Отправлено: 14:29, 17-01-2010 | #6



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » Установить и удалить шрифт

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Разное - [решено] Как удалить ярлык с рабоч. стола, если в контекстном меню нет пункта Удалить Denkxx Microsoft Windows 7 5 25-09-2009 14:56
Установка - Как удалить с бука Vista и установить XP dewsar Microsoft Windows Vista 2 08-04-2009 15:49
Suse/OpenSuSE - Как установить в консоли шрифт KOI8-R по умолчанию maslinaV Общий по Linux 8 07-11-2007 12:34
В папке FONTS пропало "Установить шрифт" Alexandre Microsoft Windows 95/98/Me (архив) 7 24-10-2007 13:17
Suse/OpenSuSE - Помогите найти пакет consoletools...и в консоли Suse установить шрифт... maslinaV Общий по Linux 0 08-10-2007 11:41




 
Переход