الدرس الخامس في دورة تعليم Autoit

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

ما هم ملفات الإستدعاء؟

ملفات الإستدعاء هي تلك الملفات الدخيلة على البرنامج
والتي قد تساعدنا في تنظيم سكربت البرنامج
وتعتبر مسهلة جدا للعمل
حيث يمكن لملفات الإستدعاء
أن تحمل دوال عامة
يمكن إستخدامها في البرنامج
كما يمكن أن تحمل متغيرات عامة تستخدم في البرنامج
حيث يرمز لها بالإنجليزية ب
includ files
وملفات الإستدعاء في هذه اللغة قسمان
منها ما هو مدموج مع البرنامج
ومنها ما نحمله من الأنترنت أو نقم نحن بكتابته.
وملفات الإستدعاء تكن دائما بإمتداد
سكربتات الأوتو
أي
.au3
سيخطر في رأسك سؤال الآن عزيزي
وهو هل يمكننا الإستغناء عن ملفات الإستدعاء
فأقول لك ملفات الإستدعاء يمكن الإستغناء عنها في حال كانت من تصميمك
حيث يمكن دمج كل الدوال في ملف واحد
أما المدمجة مع اللغة
فيمكن ولاكن من الصعب جدا
ويتطلب خبرة في اللغة.
ومن الأفضل
أن نستخدم ملفات الإستدعاء لأنها تساعدنا في تنظيم السكربت الخاص بنا
كما تسهل علينا إيجاد الأخطاء البرمجية التي نرتكبها.

كيف يمكنني إستدعاء ملف؟

لإستدعاء ملف يجب أولا أن تحدد مسار الملف الذي تريد أن تستدعيه
إذا كان خاص أو تم تحميله من الأنترنت
وإذا كان موضوع بجانب السكربت الأصلي أو كان هذا الملف من بين ملفات المكتبة المدمجة مع اللغة
فيكفي أن تكن تعرف إسمه فقط
نأتي الآن لكيفية الإستدعاء
لاستدعاء ملف في لغة الأوتو
نستخدم الأمر
#include
ثم مسافة ثم رمز أصغر من
< ثم مسار الملف أو إسمه مع الإمتداد ثم علامة أكبر من >

مثلا
#include
هذا لإستدعاء ملف مخصص
أو
#include
لإستدعاء ملف من المكتبة

بعض ملفات الإستدعاء المهمة الموجودة في المكتبة

عزيزي في مكتبة الأوتو المدمجة هناك نوعان من ملفات الإستدعاء
هناك الملفات التي تحوي متغيرات عامة
تعمل في مواضع مخصصة
وهناك من تحتوي على دوال ومهام كبيرة
وفي هذا القسم سنتعرف على أهم الملفات التي لا يمكن الإستغناء عنها
وقبل أن نبدء في إستعراض الملفات دعوني أقدم لكم المسار الموجودة فيه هذه الملفات
نجدها في مجلد Autoit الموجود في program files
ثم مجلد بإسم include
هناك نجد كل ملفات الاستدعاء الموجودة في مكتبة الأوتو
وكلها بصيغة au3
ملاحظة :
لو قمت عزيزي بنقل أي ملف أنكلود إلى هذا المجلد فسوف يعتبر من المكتبة
ولست مذطر على كتابة المسار بالكامل لاستدعاء الملف
حيث يكفي كتابة إسمه
ولو قمت بحذف ملف أنكلود واحد
يمكن أن يسبب لك عطب في تنفيذ المهام
لأن كل الملفات الموجودة هنا مهمة جدا جدا
لذا يرجا الإنتباه وعدم العبث في هذه الملفات
____
نبدء الآن في الإستعراض

الملفات الخاصة بالمتغيرات العامة

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

الملف الفائدة منه
AutoItConstants.au3 فيه أهم المتغيرات العامة الخاصة باللغة
ButtonConstants.au3 ملف يحتوي على المتغيرات العامة الخاصة بالأزرار
ComboConstants.au3 ملف يحتوي على المتغيرات الخاصة بصناديق الإختيار
DateTimeConstants.au3 ملف يحتوي على المتغيرات الخاصة بالوقت والتاريخ
DirConstants.au3 ملف يحتوي على المتغيرات الخاصة بالمجلدات
EditConstants.au3 ملف يحتوي على المتغيرات الخاصة بمربعات التحرير
FileConstants.au3 ملف يحتوي على المتغيرات الخاصة بالملفات
GUIConstants.au3 ملف يحتوي على المتغيرات الخاصة بواجهات المستخدم الرسومية
ListBoxConstants.au3 ملف يحتوي على المتغيرات الخاصة بالقوائم
ListViewConstants.au3 ملف يحتوي على المتغيرات الخاصة بقوائم العرض
MathConstants.au3 ملف يحتوي على المتغيرات الخاصة بالعمليات الحسابية
MenuConstants.au3 ملف يحتوي على المتغيرات الخاصة بالقوائم
MsgBoxConstants.au3 ملف يحتوي على المتغيرات الخاصة برسائل المحاورة
ProcessConstants.au3 ملف يحتوي على المتغيرات الخاصة بالتحكم في العمليات النشطة
ProgressConstants.au3 ملف يحتوي على المتغيرات الخاصة بشريط التقدم
SliderConstants.au3 ملف يحتوي على المتغيرات الخاصة بشاريط السحب
TabConstants.au3 ملف يحتوي على المتغيرات الخاصة بالصحائف
TreeViewConstants.au3 ملف يحتوي على المتغيرات الخاصة بالعرض الشجري
IPAddressConstants.au3 ملف يحتوي على بعض المتغيرات الخاصة بعناوين IP
StringConstants.au3 ملف يحتوي على بعض المتغيرات التي تساعدنا في التحكم في النصوص
WindowsConstants.au3 ملف يحتوي على بعض المتغيرات الخاصة بالنظام والنوافذ

طبعا هناك المزيد من الملفات
لاكن هذا ما نحتاجه في الدروس القادمة
والباقية سنتعرف عليها مع بعضنا في حال إحتجنا إليها

ملفات الإستدعاء الخاصة بالدوال المساعدة

هذه الملفات التي سأستعرضها معكم الآن
هي ملفات إستدعاء بها دوال تساعدنا وتسهل علينا القيام بالعديد من المهام
طبعا الملفات التي سأستعرضها الآن ليس هي فقط الموجودة لاكن سأستعرض أهم ما نحتاج إليه في الدروس القادمة
والباقي سنتعرف عليه عند الحاجة

الملف الفائدة منه
Clipboard.au3 ملف يحتوي على الدوال الخاصة بالتحكم في الحافظة
Date.au3 ملف يحتوي على بعض الدوال التي تعرفنا بالوقت والتاريخ بطرق مختلفة
File.au3 ملف يحتوي على بعض الدوال التي تساعدنا في إدارة الملفات
GUIConstantsEx.au3 باستدعاء هذا الملف هو يغنينا عن إستدعاء العديد من الملفات لأنه هو يقم بإستدعائها.
icon .au3 ملف يحتوي على بعض الدوال التي تساعد في عرض الصور والأيقونات
Math.au3 ملف يحتوي على بعض الدوال التي تساعد في العمليات الحسابية
Process.au3 ملف يحتوي على بعض الدوال التي تمكننا من التحكم في العمليات
Sound.au3 ملف يحتوي على بعض الدوال التي تساعدنا في تشغيل الملفات الصوتية
Misc.au3 ملف يحتوي على بعض الدوال التي تساعد في القيام بعمليات مختلفة سنتعرف عليها لاحقا
GuiButton.au3 ملف يحتوي على دوال للتحكم في الأزرار
GuiComboBox.au3 ملف يحتوي على بعض الدوال لإدارة صناديق الإختيار
GuiEdit.au3 ملف يحتوي على بعض الدوال التي تساعدنا في إدارة مربعات التحرير
GuiIPAddress.au3 ملف يحتوي على بعض الدوال التي تساعدنا في التحكم في عنوان IP
GuiListBox.au3 ملف يحتوي على بعض الدوال التي تساعدنا على التحكم في القوائم
GuiListView.au3 ملف يحتوي على بعض الدوال التي تساعدنا في التحكم في قوائم العرض
GuiMenu.au3 ملف يحتوي على بعض الدوال التي تساعدنا في التحكم في القوائم
GuiSlider.au3 ملف يحتوي على بعض الدوال التي تمكننا من التحكم في شريط السحب
GuiTab.au3 ملف يحتوي على بعض الدوال التي تساعدنا في التحكم في الصحائف
GuiTreeView.au3 ملف يحتوي على بعض الدوال التي تساعدنا على التحكم في العرض الشجري
String.au3 ملف يحتوي على بعض الدوال التي تساعدنا في التحرك في النصوص

لقد إنتها درسنا اليوم
الذي يعتبر من الدروس المهمة جدا في هذه اللغة
حيث إبتداءا من الدرس القادم سنبدء في التعامل مع هذه الدوال والمتغيرات
وطبعا باستدعاء هذه الملفات التي تعرفنا عليها الآن
طبعا وكالعادة يمكنكم زيارة الدرس السادس قريبا من خلال
هذا الرابط
تقبلو تحياتي ولا تنسوني من خالص دعائكم

الدرس الرابع في دورة تعليم autoit

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

أما الآن فدعونا نبدء مع الدرس الرابع

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

تذكير بشكل الدالة المعرفة

في تعرفنا على الدالة
تعلمنا أن الدالة نوعين
وهما الدالة المعرفة والدالة المخصصة
واليوم ما نحتاجه هو الدالة المعرفة
وهي دوال قد صممت لتسهيل علينا الكثير من الأكواد
المعقدة منها والطويلة
وإختصارا للوقت, وحتى لا ننشغل بكتابة أكواد كثيرة كل ما أردنا عمل أمر معين
فجاأت هنا هذه الدوال العامة
التي تقم بتنفيذ لنا ما نريد ومتى ما نريد
وشكل الدالة يكن كالتالي
name(param1, param2, param3,…)
حيث
name : يمثل إسم الدالة
القوسين : يمثلا حقل إعدادات الدالة
وما وضع بين القوسين : يمثل إعدادات الدالة المتغيرة
التي سنرى أمثلة عديدة عنها في هذا الدرس إن شاء الله تعالى.

إدارة الملفات والمجلدات

من خلال هذا الدرس عزيزي ستكن قادرا على التحكم في ملفاتك
كنقلها وحذفها ونسخها.
كما ستكن قادرا على التحكم في المجلدات الخاصة بك
وقبل أن ننطلق
دعوني أأكد لكم شيء
هو أني أقم بشرح هذه اللغة حتى تعم الفائدة علينا جميعا
وحتى نخرج نحن المكفوفين من ضاهرة الإستهلاك فقط
وحتى لا نبقى ننتضر من المتوسطين منا أو حتى المحترفين بأن ينجزو لنا أدوات بسيطة تساعدنا في قضاء بعض الحاجيات البسيطة
ونحن نبقى نتعجب من الشكل ونندهش كيف صممت هذه الأداة أو هذا البرنامج., أو ننتقد الشكل أو الأداء
بل ننشء ما نريد بأيدينا نحن
وبالشكل الذي يناسبنا نحن
وهذا لا يعني أنني أقلل من مجهودات إخواني لا والله
لا أقلل ولا أعيب منتوجات أحد
بل قلتها على وجه التوضيح لا أكثر
وتشجيعا لأن تكمل عزيزي في هذه اللغة
أحب أن أخبرك
أن كل الأدوات والبرامج التي أقم أنا بتصميمها تعتمد بنسبة كبيرة جدا على هذه اللغة
ومنها من تعتمد عليها بشكل كلي
وهذا لا أقصد به أني متوسط أو محترف
لا والله أنا مبتدء جدا
لاكن أنا شخص يحب البحث ويحب التعلم
وأريد أن أقسم كل ما أتعلمه معكم حتى تعم الفائدة
والآن دعني أذكرك بأني بريء أمام الله عز وجل
من كل من يستخدم هذه الأوامر التي أقدمها لكم في ما لا يرضي الله عز وجل, وما يؤذي إخواننا.
وأشهد الله أني بريء أمامه
والله الموفق والمستعان
طيب أعتذر عزيزي على كثرة الكلام
دعونا نبدء الآن مع

إدارة الملفات

عزيزي لإدارة الملفات هناك دوال مخصصة لذالك
كدالة نسخ الملفات
fileCopy
ودالة نقل الملفات
fileMove
ودالة حذف الملفات
FileDelete
وهذا ما سا نتعرف عليه اليوم
وكل الدوال المذكورة تحتوي على
3 إعدادات
الأولى مشتركة
وهي مسار الملف
والثانية تختلف حسب الدالة
المهم سنبدء في شرحهم دالة دالة حتى يتضح الأمر

1. دالة نسخ الملفات fileCopy

شكل الدالة يكن كالتالي
fileCopy(المسار1, المسار2, الإشارة)
شرح
المسار 1 هو مسار الملف الذي تريد نسخه
المسار2
هو المسار الذي تريد نسخ الملف إليه
الإشارة
وهي
أن نشير إلى الدالة بتنفيذ بماذا ستفعل إذا واجهتها بعض المعيقات
كإيجاد إسم ملف يحمل إسم الملف الذي تريد نسخه
أو المسار غير موجود إلخ
والإشارة إما أن تكن بمتغيرات خاصة
أو بالأرقام
وأنا أفضل الأرقام حاليا
نظرا لعدم توسعنا الكافي في المتغيرات
والأرقام أسهل
وهنا بين أيدينا ثلاث إشارات مهمة
وهي :
0 أي نشير له أن إذا وجد ملف بنفس الإسم لا يستبدله
1أي نشير له أن إذا وجد ملف بنفس الإسم يقم باستبدله
8 أن نشر له بأن إذا لم يجد مسار النسخ يقم بإنشائه
لاكن هنا السؤال الذي يطرح نفسه هو :
لو أردت مثلا أن أشير له بأن يستبدل الملف وينشء المجلد في نفس الوقت فماذا أفعل
هل أكتب مثلا 18؟
هنا أيها القارء الكريم
علينا بأن نفصل بين الإشارات بعلامة +
حيث تصبح مثلا
1 + 8
أي إستبدل وإنشء المجلد إن لم يكن موجود
أو
0 + 8
أي لا تستبدل وإنشء المجلد إن لم يكن موجود
والآن مثال توضيحي
لنفترض أننا نملك ملف في القرص c وإسمه autoit.txt
ونريد نسخه إلى المسار التالي
d:\my files\
فنكتب
الكود كما يلي
fileCopy(“c:\Autoit.txt”, “d:\my files”, 1)
أي ينسخه بنفس الإسم مع إستبداله إن وجد
هنا يشترط أن يكن المسار صحيح
fileCopy(“c:\Autoit.txt”, “d:\my files\autoit2.txt”, 1 + 8)
وبهذا المثال
يقم بنسخ الملف بإسم مختلف
مع إستبدال الملف إن وجد وإنشاء المجلد إن لم يكن موجود
طبعا بإمكانك نسخ أكثر من ملف
مثلا لو أردت نسخ كل الملفات التي بإمتداد txt من مجلد إلى مجلد آخر
فأستبدل إسم الملف وإمتداده في المسار الأول ب
*.txt
فتصبح كالتالي مثلا
fileCopy(“c:\example\*.txt”, “d:\my files\”, 1 + 8)
أو إذا أردت نسخ كل الملفات مثلا فأستبدل إسم المسار وإمتداده ب
*.*
حيث يصبح مثلا
fileCopy(“c:\example\*.*”, “d:\my files\”, 1 + 8)
إلخ

2. دالة نقل الملفات fileMove

إن دالة نقل الملفات هي مشابهة تماما لدالة نسخ الملفات
حيث تتميز بكل خصائصها
فقط نستبدل كلمة
copy
بكلمة
Move

فتصبح الدالة كالتالي
fileMove
ومثال فقط على الدالة
fileMove(“c:\example\*.txt”, “d:\my files\”, 1 + 8)
طبعا الإشارات هي نفسها والإعدادات هي نفسها

3. دالة حذف الملفات fileDelete

هذه الدالة تحتوي على إعداد واحد فقط
حيث يكن شكل الدالة كما يلي
fileDelete(“مسار الملف”)
ومسار الملف هو مسار وإسم وإمتداد الملف الذي نريد حذفه
حيث تكن مثلا
fileDelete(“c:\autoit.txt”)
لحذف ملف واحد
أو
fileDelete(“c:\example\*.txt”)
لحذف كل الملفات النصية
أو
fileDelete(“c:\example\*.*”)
لحذف كل الملفات مهما كان إمتدادها

إدارة المجلدات

لغة autoit عزيزي وكأي لغة برمجة تتيح لك التحكم في المجلدات وإدارتها
ولعمل هذا هناك دوال مخصصة
حيث سنتعرف اليوم على :
دالة إنشاء المجلدات
dirCreate
ودالة نسخ المجلدات
DirCopy
ودالة نقل المجلدات
DirMove
ودالة حذف المجلدات
DirRemove

1. دالة إنشاء المجلدات dirCreate

هذه الدالة سهلة جدا وتحتوي على إعداد واحد فقط

وهو مسار المجلد الذي نريد إنشائه
حيث شكلها يكن كالتالي
DirCreate(“المسار”)
ومثال عليها
DirCreate(“c:\example”)

2. دالة نسخ المجلدات DirCopy

هذه الدالة تمكننا من نسخ محتوى مجلد ما إلى مجلد آخر
حيث يكن شكلها كالتالي
DirCopy(“مسار المجلد”, “مسار المجلد الذي نريد النسخ إليه”, الإشارة)
مسار المجلد هو المسار الذي يحتوي على المحتوى المراد نسخه
والمسار الثاني هو مسار المجلد الذي نريد نسخ المحتوى إليه
أما الإشارة
فهنا إشارتين فقط
0 في حال وجد نفس الملفات لا يقم بإستبدالها
1 في حال وجد نفس الملفات يقم بإستبدالها
مثلا
DirCopy(“c:\example”, “d:\programation\autoit\example”, 1)
أي يقم بنسخ المجلد
وإستبدال المحتوى إن كان موجود
أو
DirCopy(“c:\example”, “d:\programation\autoit\example”, 0)
أي لا يقم بإستبدال المحتوى إن كان موجود مسبقا.

دالة نقل مجلد DirMove

هذه الدالة تشبه تماما دالة نسخ مجلد
يكفي فقط إستبدال كلمة
copy
بكلمة
move
فتصبح
DirMove
مثال على الدالة
DirMove(“c:\example”, “d:\programation\autoit\example”, 1)
أي أمرته بنقل المجلد إلى مجلد آخر مع إستبدال المحتوى إن كان موجود مسبقا.

4. دالة حذف مجلد

هذه الدالة تحتوي على إعدادين فقط وهما
مسار المجلد والإشارة
حيث هي على الشكل التالي
DirRemove(“مسار1”, إشارة)
المسار يعني مسار المجلد الذي نريد حذفه
أما الإشارة
فهنا عندنا إشارتين
الأولى
0 وتشير إلى حذف المجلد في حال كان فارغا
والثانية هي :
1 وتشير إلى حذف المجلد على أي حال
مثال توضيحي
DirRemove(“c:\example”, 1)
يعني أخبرته بحذف المجلد على أي حال
DirRemove(“c:\example”, 0)
وهنا أمرته بحذف المجلد شرط أن يكن فارغا

ملاحظات

1. يجب كتابة المسارات بين علاماتي تنصيص
حتى وإن لم يكن المسار يحتوي على مسافات
2. لو لم نقم بوضع الإشارة فهو يستخدم إشارة 0 بشكل تلقائي
يعني مثلا
في نسخ الملفات يستخدم الإشارة عدم إستبدال الملفات بشكل تلقائي
لذا إن كنت تريد أن تشر له بعدم الإستبدال
فبإمكانك الإستغناء عن الإشارة
فتصبح الدالة مثلا كالتالي
fileCopy(“c:\autoit.txt”, “d:\my files”)
ونفس الشيء مع الدوال الأخرى.
3. يجب تقديم المسارات الصحيحة حتى تنجح العملية بنجاح.
4. إذا إستخدمت أمر حذف كل الملفات أو كل المجلدات
وكان هناك ملفات مخفية فلن يقم بحذفها
لذا يجب عليك إظهارها وإزالة الحماية عنها أولا
وهذه اللغة تحتوي على أوامر للقيام بهذه العملية وسنتعرف عليها فيما بعد

ملاحظات عامة

1. عليك بقراءة الدروس السابقة وتدوينها وفهمها جيدا
حتى تسهل لك الدروس التالية
وأنا في الخدمة بإمكانك أن تكتب سؤالك إما في تعليق وإما في صفحة أسئلة الأعضاء.
2. دائما المسارات والنصوص في هذه االلغة تكن بين علامات تنصيص.
3. دائما يجب أن نفصل بين إعدادات الدالة بعلامة الفاصلة

خاتمة

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