- Сообщения
- 5,379
- Репутация
- 2,724
Функция предназначена только для TrueType/OpenType шрифтов. Требуется WinAPIEx UDF.
Код:
#Include <WinAPIEx.au3>
ConsoleWrite(_FontInstall('MyFont.ttf') & @CR)
Func _FontInstall($sFile) ; ONLY TTF FONTS!!!
Local $Font, $Name, $Path
$Name = _WinAPI_GetFontResourceInfo($sFile, 1)
If @error Then
Return SetError(1, 0, 0)
EndIf
$Name &= ' (TrueType)'
$Font = StringRegExpReplace($sFile, '^.*\\', '')
If Not RegWrite('HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Fonts', $Name, 'REG_SZ', $Font) Then
Return SetError(2, 0, 0)
EndIf
$Path = _WinAPI_ShellGetSpecialFolderPath($CSIDL_FONTS)
If Not FileCopy($sFile, $Path) Then
RegDelete('HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Fonts', $Name)
Return SetError(3, 0, 0)
EndIf
If Not _WinAPI_AddFontResourceEx($Path & '\' & $Font, 0, 1) Then
Return SetError(4, 0, 0)
EndIf
Return 1
EndFunc ;==>_FontInstall