Имя пользователя:
Пароль:
 

Показать сообщение отдельно

Аватара для 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