Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2009.11.29;
Скачать: CL | DM;

Вниз

Как инсталировать шрифт в систему?   Найти похожие ветки 

 
demon ©   (2008-11-16 22:17) [0]

Есть несколько шрифтов (*.ttf файлов), их нужно установить с систему, как это сделать?


 
CodeMaster ©   (2008-11-16 23:02) [1]

Ищешь папку Fonts и копируешь туда всё (подсказка реестр)


 
demon ©   (2008-11-16 23:42) [2]

Это понятно.
А как тогда получить название шрифта чтобы дабавить его в реестр?


 
{RASkov} ©   (2008-11-17 00:26) [3]

> [2] demon ©   (16.11.08 23:42)

Пробывать не охото.... но помоему простое копирование в системную папку файла со шрифтом(ами) и ось сама все проинсталирует...
А вообще есть АПИ функции для работы со шрифтами посмотри: Font and Text Functions
и например: AddFontResource


 
{RASkov} ©   (2008-11-17 00:27) [4]

> в системную папку

ну имелось в виду [1]) т.е. %SystemRoot%\Fonts


 
demon ©   (2008-11-17 00:38) [5]

Нет, не проинсталирует.
Но если после копирования открыть Fonts с панели управления, то шрифты пропишуться в реестр.


 
Германн ©   (2008-11-17 01:28) [6]


> demon ©   (17.11.08 00:38) [5]
>
> Нет, не проинсталирует.
> Но если после копирования открыть Fonts с панели управления,
>  то шрифты пропишуться в реестр.
>

Возможно поможет этот ответ:
http://www.delphi-club.ru/delphi/add_true_type_font.html
Токо он несколько устарел. Ветка реестра Fonts нынче находится в другом месте.


 
demon ©   (2008-11-17 03:39) [7]

Все ровно там нету ничего по извлечению информации о названии шрифта из ttf файла, просто добавляеться заранее прописаное название.
А можно ли где глянуть спецификацию по ttf файлам (ну там описание формата, не знаю как правильно сказать...)?


 
CodeMaster ©   (2008-11-17 21:30) [8]

Вообще не понимаю зачем тебе инсталировать Шрифт в систему? Делаешь программу - закидываешь в её директорию файл шрифта, связываешь функцией AddFontResource и работаешь как с обычным шрифтом.

А вообще лучше канешно сделать на WinApi, там и эффектов можно добиться неплохих.


 
demon ©   (2008-11-17 21:42) [9]

нуу нет, это типа программа-инсталятор, вернее это командный файлы был изначально, приводивший свежеустановленую систему в нужное мне состояние (ну там проги с rar-ов распаковавал и настройки в реестр вносил), но шрифты так просто не установишь, вот и пишу консольную утилитку :)


 
demon ©   (2008-11-18 00:37) [10]

вот написал код:
program addTTF;

{$APPTYPE CONSOLE}

uses  Windows, SysUtils, registry;

var
fname,fname2, temp:string;
PWindowsDir: array [0..255] of Char;
hReg: TRegistry;

procedure haveerror(i : integer);
begin
 case i of
   0: writeln("Error with copyring. ");
   1: writeln("Error with adding to registry. ");
 end;
 halt;
end;

begin
if ParamCount > 0 then
begin
 if FileExists(ParamStr(1)) and (uppercase(extractfileext(ParamStr(1)))=".TTF") then
   begin
     try
       GetWindowsDirectory(PWindowsDir,255);
       fname:=expandfilename(ParamStr(1)) ;
       fname2:=PWindowsDir+"\FONTS\"+extractfilename(ParamStr(1));
       CopyFile(pchar(fname), pchar(fname2), true);
     except
       haveerror(0);
     end;
     try
       hReg := TRegistry.Create;
       hReg.RootKey := HKEY_LOCAL_MACHINE;
       hReg.LazyWrite := false;
       hReg.OpenKey("SOFTWARE\Microsoft\Windows NT\CurrentVersion\Fonts", false);
       temp:=extractfilename(ParamStr(1));  
       delete(temp, length(temp)-3, 4);
       hReg.WriteString(temp+" (TrueType)", extractfilename(ParamStr(1)));
       hReg.CloseKey;
       hReg.free;
     except
       haveerror(1);
     end;
     writeln("Successful") ;
   end else writeln("error") ;
end else
begin
 writeln("Programm addTTF install TTF font in system");
 writeln("Use: addTTF <filename>");
end;

end.


не появляеться шрифт в системе, хотя в папку скопировался и в реестр добавился.


 
demon ©   (2008-11-18 01:22) [11]

Ура! Заработало.
нужно было добавить
AddFontResource(pchar(fname2));
SendMessage(HWND_BROADCAST, WM_FONTCHANGE, 0, 0);


ЗЫ. Покритикуйте код, как правильнее было бы?



Страницы: 1 вся ветка

Текущий архив: 2009.11.29;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.011 c
3-1213982498
312kbps
2008-06-20 21:21
2009.11.29
ADOCommand.Parameters.CreateParameter


15-1254090673
Nic
2009-09-28 02:31
2009.11.29
Странная вещь. Помогите


15-1254342609
Юрий
2009-10-01 00:30
2009.11.29
С днем рождения ! 1 октября 2009 четверг


1-1227031341
IgorT
2008-11-18 21:02
2009.11.29
Не могу открыть 5-мбайтный ини файл с помощью - TMemIniFile


15-1249503149
TIF
2009-08-06 00:12
2009.11.29
PHP на хостинге с FreeBSD: глюки или чиь-то кривые руки?