Что нового

_FontInstall() - Установка TrueType шрифтов в систему

Yashied

Модератор
Команда форума
Глобальный модератор
Сообщения
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
 
Верх