اذهب الي المحتوي
أوفيسنا
بحث مخصص من جوجل فى أوفيسنا
Custom Search

[حصريا] قم بتثبيت خطوطك المفضلة من داخل الاكسس بواسطة NET WidowsAPI.


SEMO.Pa3x

الردود الموصى بها

السلام عليكم, في السابق كنت استخدم خطوط معينة في برامجي

وعند اعطاء البرنامج للعميل لاتظهر الخطوط التي قمت باستخدامها بل يظهر بمكانها الخط ( Arial ) وهذه مُشكلة.

كت في وقتها الجأ الى ان اضع الخط بجانب قاعدة البيانات وفي داخل قاعدة البيانات اقوم بعمل تحقق لمجلد Fonts والبحث عن الخط

في بداية تشغيل القاعدة, فإن لم يجده يعي رسالة للعميل بان الط مفقود وعليه ان يقوم بتثبيته من جانب البرنامج.

بحثت طويلاً في الانترنت عن تثبيت خط من الاكسس فقط بدون مساعدة عامل خارجي ولكن لم اصل لنتيجة.

اليوم بحمد الله قمت بحل المشكلة بإستخدام ( Visual .NET )

قمت بكتابة اداة بسيطة وظيفتها تثبيت الخط. يتم تمرير براميتر لها وهي بدورها ستقوم بتثبيته

 

الدوال المستخدمة:

AddFontResource

CreateScalableFontResource

ShellExecuteA

للمزيد من المعلومات ، اضغط على اسم الدالة ارفقت لكم المصادر من MSDN

 

شرح بسيط لمن لم يعرف ماذا اقصد بتثبيت الخط واستخدام الخط وانه لن يظهر في حال كان العميل لا يملكه.

 

ShzpVAo.png

 

قمت بارفاق قاعدة بيانات لكم كـ مثال للشرح مع الخط المستخدم مع الاداة.

 

شرح الاستعمال:

يجب ان تكون الاداة ( SEMO_RegisterFont.exe ) هي والخط الذي سوف تستخدمه بجانب قاعدة البيانات.

 

rmR61Qs.png

 

افتح برنامجك وضع فيه هذا الاجراء.

 

Sub RegisterFont(nFont)
    Dim strExe As String
    Dim strArg As String
    strExe = CurrentProject.Path & "\" & "SEMO_RegisterFont.exe"
    strArg = "/SEMO/" & nFont
    ShellExecute 0, "runas", strExe, strArg, vbNullString, SW_SHOWNORMAL
End Sub

 

في الاستدعاء اي في الحدث Form_Current

 

RegisterFont "DroidSansArabic.ttf"

 

حيث ان الـ DroidSansArabic.ttf هو اسم الخط الذي قمنا بوضعه بجانب قاعدة البيانات

 

 

ملاحظة مهمة جدا:

في حال كان اسم الخط يتكون من اكثر من كلمة مثل ( Droid Sans Arabic.ttf )

قم بحذف المسافات بين كلمة واخرى بحيث يصبح ( DroidSansArabic.tts )

 

DdPd61K.png

 

وستعمل قاعدة البيانات التي قمت بتصميمها بشكل رائع وبالخطوط التي قمت انت بأختيارها

بدون الخوف من مشكلة عدم توفر الخطوط في جهاز العميل.

 

الشرح حصري للمنتدى وغير موجود في الانترنت.

لا تشكرني الا اذا وجدت انني استحق ذلك.

 

تم بحمد الله

حسنين

RegisterFont_SEMO_Pa3x.rar

تم تعديل بواسطه SEMO.Pa3x
  • Like 6
  • Thanks 3
رابط هذا التعليق
شارك

نشكرك أخي  على جهدك وفكرتك الجميلة 

لكن يوجد أخي كود من داخل أكسس نفسة وقد عملت ملف بهذا الامر قبل مايقرب نصف سنة تقريبا واستسمحك أخي وحتى لا يتخبط الاعضاء قمت بعمل منشور وارفقت المثال

لاني لم اتوقع أن هناك من يعاني في أيجاد مثل هذا الكود

وهذا رابط المنشور

 

 

رابط هذا التعليق
شارك

11 ساعات مضت, صالح حمادي said:

السلام عليكم

هذا مثال لتثبيت الخط داخل الونداوز من داخل ملف الأكسس

إضافة خط للونداوز.rar 32.09 \u0643\u064a\u0644\u0648 \u0628\u0627\u064a\u062a · 6 downloads

 

2 ساعات مضت, qathi said:

نشكرك أخي  على جهدك وفكرتك الجميلة 

لكن يوجد أخي كود من داخل أكسس نفسة وقد عملت ملف بهذا الامر قبل مايقرب نصف سنة تقريبا واستسمحك أخي وحتى لا يتخبط الاعضاء قمت بعمل منشور وارفقت المثال

لاني لم اتوقع أن هناك من يعاني في أيجاد مثل هذا الكود

وهذا رابط المنشور

 

 

 

اخواني في امثلتكم المطروحة لا يتم اضافة الخط الى مجلد Fonts الا بعد الريستارت ,, ويتطلب تشغيل الاكسس كـ مسؤول.

  • Like 1
رابط هذا التعليق
شارك

8 ساعات مضت, SEMO.Pa3x said:

اخواني في امثلتكم المطروحة لا يتم اضافة الخط الى مجلد Fonts الا بعد الريستارت ,, ويتطلب تشغيل الاكسس كـ مسؤول.

أنا عندي لا يحتاج إلى ريستارت أو تشغيل الأكسس كمسؤول

أقوم بتثيبت الخط من خلال الملف بشكل عادي ثم أفتح أي ملف أوفيس فأجد الخط  مثبت

رابط هذا التعليق
شارك

في ٢٠‏/٤‏/٢٠١٩ at 07:12, SEMO.Pa3x said:

السلام عليكم, في السابق كنت استخدم خطوط معينة في برامجي

وعند اعطاء البرنامج للعميل لاتظهر الخطوط التي قمت باستخدامها بل يظهر بمكانها الخط ( Arial ) وهذه مُشكلة.

كت في وقتها الجأ الى ان اضع الخط بجانب قاعدة البيانات وفي داخل قاعدة البيانات اقوم بعمل تحقق لمجلد Fonts والبحث عن الخط

في بداية تشغيل القاعدة, فإن لم يجده يعي رسالة للعميل بان الط مفقود وعليه ان يقوم بتثبيته من جانب البرنامج.

بحثت طويلاً في الانترنت عن تثبيت خط من الاكسس فقط بدون مساعدة عامل خارجي ولكن لم اصل لنتيجة.

اليوم بحمد الله قمت بحل المشكلة بإستخدام ( Visual .NET )

قمت بكتابة اداة بسيطة وظيفتها تثبيت الخط. يتم تمرير براميتر لها وهي بدورها ستقوم بتثبيته

 

افتح برنامجك وضع فيه هذا الاجراء.

 


Sub RegisterFont(nFont)
    Dim strExe As String
    Dim strArg As String
    strExe = CurrentProject.Path & "\" & "SEMO_RegisterFont.exe"
    strArg = "/SEMO/" & nFont
    ShellExecute 0, "runas", strExe, strArg, vbNullString, SW_SHOWNORMAL
End Sub

56.05 \u0643\u064a\u0644\u0648 \u0628\u0627\u064a\u062a · 15 downloads

كل الشكر والتقديرللاخ الكريم SEMO.Pa3x والى كل من ساهم بهذا بالموضوع واعمام الفائدة للجميع

وجزاكم الله خير جزاء المحسنين ...

 

رابط هذا التعليق
شارك

21 ساعات مضت, SEMO.Pa3x said:

اخواني في امثلتكم المطروحة لا يتم اضافة الخط الى مجلد Fonts الا بعد الريستارت ,, ويتطلب تشغيل الاكسس كـ مسؤول.

هل تاكد من عمل الكود أخي SEMO.Pa3x 

لا الكود كما قال أستاذناصالح حمادي 

12 ساعات مضت, صالح حمادي said:

أنا عندي لا يحتاج إلى ريستارت أو تشغيل الأكسس كمسؤول

أقوم بتثيبت الخط من خلال الملف بشكل عادي ثم أفتح أي ملف أوفيس فأجد الخط  مثبت

فالكود لا يحتاج ريستات ولا تشغيل كمسؤل ويعمل بشكل طبيعي 

تم تعديل بواسطه qathi
رابط هذا التعليق
شارك

جهد جميل يستحق الشكر

وأيضا نستطيع إضافة الخطوط في نفس قاعدة البيانات دون الحاجة لوضعها في مجلد

عن طريق كائن (OLE)

ويتم استدعاء الخط وتسجيله عند فتح البرنامج

هذه هي الطريقة التي استخدمها انا في برامجي

::

تحياتي

  • Like 2
رابط هذا التعليق
شارك

21 دقائق مضت, AlwaZeeR said:

وأيضا نستطيع إضافة الخطوط في نفس قاعدة البيانات دون الحاجة لوضعها في مجلد

عن طريق كائن (OLE)

ويتم استدعاء الخط وتسجيله عند فتح البرنامج

أتمنى أن تضع لنا مثال على هذه الطريقة صديقي

  • Like 1
رابط هذا التعليق
شارك

6 ساعات مضت, صالح حمادي said:

أتمنى أن تضع لنا مثال على هذه الطريقة صديقي

 

اخي @صالح حمادي ضع الخط داخل القاعدة على شكل مرفقات

ضع امر كتابة الخط من القاعدة للقرص الصلب , قم بتنصيب الخط  , قم بحذفة من القرص الصلب

  • Like 1
رابط هذا التعليق
شارك

9 دقائق مضت, SEMO.Pa3x said:

اخي @صالح حمادي ضع الخط داخل القاعدة على شكل مرفقات

ضع امر كتابة الخط من القاعدة للقرص الصلب , قم بتنصيب الخط  , قم بحذفة من القرص الصلب

شكرا جزيلا أخي @SEMO.Pa3x فالأستاذ @AlwaZeeR قال كائن OLE و لم يقل مرفقات لذلك أردت الاستفسار عن طريقة استدعائه للخط هل هي بالطريقة العادية أم هناك كود برمجي يستعمله

7 ساعات مضت, AlwaZeeR said:

ويتم استدعاء الخط وتسجيله عند فتح البرنامج

رابط هذا التعليق
شارك

  • 2 weeks later...

السلام عليكم 🙂

 

في ٢٢‏/٤‏/٢٠١٩ at 19:44, صالح حمادي said:

أتمنى أن تضع لنا مثال على هذه الطريقة صديقي

 

في الرابط المرفق ، انا ارفق الملفات اللي اريدها ، بصيغة Blob ، في حقل OLE ، في قاعدة البيانات (mdb او accdb) ، وكود لاستراد الملف لقاعدة البيانات ، وكود لتصدير الملف الى القرص الخارجي ،

وهناك كود لجعل الملف يعمل مباشرة ، عن طريق احد النماذج (يصدر الملف الى مجلد Windows Temp ، ويقوم بجعل الملف يعمل المطلوب منه 🙂 )

 

.

جعفر

رابط هذا التعليق
شارك

من فضلك سجل دخول لتتمكن من التعليق

ستتمكن من اضافه تعليقات بعد التسجيل



سجل دخولك الان
×
×
  • اضف...

Important Information