Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2009.11.29;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.47 MB
Время: 0.005 c
15-1254153700
palva
2009-09-28 20:01
2009.11.29
Первокурсники МГУ провалили контрольную по материалам ЕГЭ


15-1254141163
jack128_
2009-09-28 16:32
2009.11.29
Эксперт для работы с SVN ??


2-1255591239
Диман
2009-10-15 11:20
2009.11.29
Установка фокуса у компонента


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


4-1223675599
Snap
2008-10-11 01:53
2009.11.29
Как узнать и изменить указатель следующей исполняемой инструкции





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский