تنصيب الخطوط برمجيا على الجهاز
#2
يمكنك استخدام الدالة AddFontResource لإضافة الخط إلى مجلد الخطوط في الويندوز. بعد ذلك، يجب عليك إعلام الويندوز بأن هناك تغيير قد حدث في الخطوط باستخدام الدالة SendMessage.
هذا مثال على كيفية القيام بذلك في دلفي:

كود :
uses   Windows; procedure InstallFont(FontFilePath: string); var   FontPath: array[0..MAX_PATH] of Char; begin   if FileExists(FontFilePath) then   begin     StrPCopy(FontPath, FontFilePath);     if AddFontResource(FontPath) <> 0 then     begin       SendMessage(HWND_BROADCAST, WM_FONTCHANGE, 0, 0);       // نسخ الخط إلى مجلد الخطوط في الويندوز       CopyFile(PChar(FontFilePath), PChar(ExtractFilePath(GetWindowsDir) + 'Fonts\' + ExtractFileName(FontFilePath)), False);     end;   end; end;

يمكنك استدعاء هذه الدالة بتمرير مسار ملف الخط الذي تريد تثبيته: 

كود :
procedure TForm1.Button1Click(Sender: TObject); begin   InstallFont('C:\Path\To\Your\Font.ttf'); end;

يرجى ملاحظة أن هذه العملية تتطلب صلاحيات إدارية في الويندوز. إذا كنت تقوم بتشغيل البرنامج تحت حساب عادي، قد تظهر رسالة خطأ أو لا يتم تثبيت الخط.
أيضا، يجب عليك إضافة ShellAPI إلى uses إذا كنت تستخدم CopyFile:


كود :
uses   Windows, ShellAPI;
إذا رأيت منتجاً مجانياً فأعلم بأنك أنت السّلعة
[-] كل من 3 users say قال شكرا ل الفجر الابيض على المشاركة المفيدة
  • أبو معاذ, khedimaadl, bouh25
الرد


الردود في هذا الموضوع
RE: تنصيب الخطوط برمجيا على الجهاز - بواسطة الفجر الابيض - 07-11-2025, 12:04 PM

التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم