نمایش نتایج 1 تا 34 از 34

نام تاپیک: نصب فونت در ویندوز 7

Threaded View

پست قبلی پست قبلی   پست بعدی پست بعدی
  1. #5

    نقل قول: نصب فونت در ویندوز 7

    کد بالا فونت مورد نظر رو به Font Table اضافه میکنه و بعد از بسته شدن هم ویندوز به صورت خودکار حذفش میکنه ، برای اینکه فونت رو به صورت دائمی نصبش کنید باید در رجیستری ثبتش کنید ، یا توجه به مستندات MSDN کدتون رو تغییر دادم ( از اول نوشتم ! ) ولی تو 7 تستش نکردم ( رو سیستم ویندوز سرور نصب هست ) :

    procedure InstallFont(LocalFontPath: String);
    const
    CSIDL_Fonts = $0014;
    var
    FontDir: array [0 .. MAX_PATH] of Char;
    Font: string;
    Reg: TRegistry;
    begin
    if not SUCCEEDED(SHGetFolderPath(0, CSIDL_Fonts, 0, SHGFP_TYPE_CURRENT,
    @FontDir[0])) then
    raise Exception.Create('Can not find system Font directory');

    LocalFontPath := IncludeTrailingBackslash(LocalFontPath);

    Reg := TRegistry.Create(KEY_ALL_ACCESS);
    try
    for Font in TDirectory.GetFiles(LocalFontPath, '*.*',
    TSearchoption.soTopDirectoryOnly) do
    begin
    if SysUtils.FileExists(FontDir + SysUtils.ExtractFileName(Font)) then
    raise Exception.CreateFmt('%s is exists in system font directory',
    [SysUtils.ExtractFileName(Font)]);

    TFile.Copy(Font, FontDir + SysUtils.ExtractFileName(Font));
    Reg.RootKey := HKEY_LOCAL_MACHINE;
    Reg.LazyWrite := False;
    Reg.OpenKey('SOFTWARE\Microsoft\Windows NT\CurrentVersion\Fonts', False);
    Reg.WriteString(SysUtils.ExtractFileName(Font) + ' (TrueType)',
    SysUtils.ExtractFileName(Font));
    Reg.CloseKey;
    AddFontResource(PChar(FontDir + SysUtils.ExtractFileName(Font)));
    end;
    finally
    Reg.Free;
    end;
    SendMessage(HWND_BROADCAST, WM_FONTCHANGE, 0, 0);
    end;


    برای استفاده از کد ، کتابخانه های IOUtils و Types رو به برنامه اضافه کنید .

    اگر مشکل داشت بگید تا بررسیش کنم .

    در ضمن ، اون کدی که در پست اول قرار دادی عملا Spaghetti Code هست !
    آخرین ویرایش به وسیله Felony : پنج شنبه 20 مرداد 1390 در 10:04 صبح

برچسب های این تاپیک

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •