وصول الدرس الحادي عشر من دورة تعلم لغة autoit

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

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

مقدمة

أولا علينا أن نفهم ما المقصود بدوال التحكم في تشغيل الملفات الصوتية
هي مجموعة من الدوال الموجودة في لغة autoit بشكل تلقائي وهي تسمح لنا بتشغيل ملفاتنا الصوتية المختلفة وتسمح لنا بإدارة التشغيل كالإيقاف المؤقت وكذالك الاستأناف والتقديم أو الترجيع وكذالك الإيقاف ومعرفة الوقت الكلي ومعرفة الموضع الحالي وغير ذالك
وهي تعتمد بشكل كلي على مكتبة النظام الخاصة بتشغيل الصوتيات
أي لو فقدت هذه المكتبة فجميع الدوال لا تعمل, لاكن جميع أنظمة التشغيل الأصلية تحتوي على هذه المكتبة, أحيانا لا تكن موجودة في الأنظمة المخففة كمثلا windows talking القديمة.
متطلبات العمل
نحن في هذا الدرس نحتاج إلى ملف استدعاء يسمى Sound.au3
وكما نعلم أن لإستدعاء ملف فنستخدم الأمر #include
يعني يصبح كالتالي
#include
وكذالك اليوم سوف نستعين بالكثير من الدوال لذا علينا أولا أن نتعرف على الدوال المستخدمة.

ما هي الدوال المستخدمة في هذا الدرس

كما قلت في البداية أني سوف أتطرق إلى الكثير من الدوال لذا علينا إخواني أن نركز قليلا في الدوال لكي لا يختلط علينا الأمر.

_SoundOpen

التعريف بالدالة

تستخدم هذه الدالة لفتح ملف صوتي قسد التحكم فيه كتشغيله ومعرفة وقته وغيره
وهذه الدالة شبه إجبارية لو أردنا التمتع بكل الخصائص

شكل الدالة

الدالة تحتوي على إعداد واحد وهو مسار الملف حيث هي على الشكل التالي
_soundOpen(“مسار الملف”)
ومسار الملف هو المسار الكامل لأي ملف صوتي مدعوم حيث الملفات المدعومة هي
ogg / MP3 / MP2 / Wav

نتيجة الدالة

النتيجة هي رمز الفتح الذي سنستخدمه في الدوال الأخرى إذا تم الفتح بنجاح
رمز @error يكن 0 إذا تم فتح الملف
أو يكن 1 إذا كان هناك خطء في إستدعاء المكتبة أو 2 إذا كان الملف غير موجود

ملاحظات

يجب إستخدام هذه الدالة في متغير لكي يمكن استخدام المتغير في الدوال التي ترتبط بنتيجة هذه الدالة
كمثلا
global$SoundOpen = _SoundOpen(“c:\test.mp3”)

مثال على الدالة


;إستدعاء الملفات اللازمة
#include <MsgBoxConstants.au3>
#include <Sound.au3>
;فتح الملف
Local $aSound = _SoundOpen(@WindowsDir & "\media\tada.wav")
;أمر شرطي للتأكد من الفتح
If @error = 2 Then
	MsgBox($MB_SYSTEMMODAL, "Error", "لم يتم العثور على الملف")
	Exit
Else
	MsgBox($MB_SYSTEMMODAL, "نجاح", "تم فتح الملف بنجاح")
EndIf
;غلق الملف الذي تم فتحه
_SoundClose($aSound)
;الخروج من البرنامج
exit

_soundPlay

التعريف بالدالة

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

شكل الدالة

الدالة بسيطة جدا جدا حيث هي تعتمد على إعدادان فقط لا ثالث لهما
والدالة على الشكل التالي
_SoundPlay(“مسار الملف / رمز دالة الفتح”, “إنتظار اكتمال المهمة”)
حيث الإعداد الأول إما أن يكن مسار الملف في حال أردت إستخدام الدالة بدون الإستعانة بالدالة الأولة
أو أن يكن الرمز الخاص بالدالة الأولة وهو قيمة المتغير الذي قمنا باستدعاء الدالة به
أما الإعداد الثاني وهو خيحتمل خياران
1 إذا أردت أن يتوقف تنفيذ السكربت إلى أن تنتهي العملية أي يكتمل تشغيل الملف
أو إما أن يكن 0 في حال أردت أن يواصل تنفيذ الأوامر الأخرى التي تكن بعده
وهو افتراضيا على 0
أي فحال لم تريد أن يتوقف تنفيذ الأوامر فتكتفي بالإعداد الأول

نتيجة الدالة

الدالة تعيد لك الرقم 1 في حال تم استخدام الدالة بالشكل المطلوب وتم تأدية العمل بنجاح
أو 0 إذا كان هناك خطء
ورمز الخطأ @error يكن كالتالي
0 في حال تم العمل بنجاح
1 في حال كان هناك خطء في تشغيل الملف
2 خطء في الإعداد الثاني
3 خطء في دالة _soundOpen

ملاحظات

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

مثال على الدالة


;إستدعاء الملفات اللازمة
#include <MsgBoxConstants.au3>
#include <Sound.au3>
;فتح الملف
Local $aSound = _SoundOpen(@WindowsDir & "\media\tada.wav")
;أمر شرطي للتأكد من فتح الملف
If @error = 2 Then
	MsgBox($MB_SYSTEMMODAL, "Error", "لم يتم العثور على الملف")
	Exit
Else
	MsgBox($MB_SYSTEMMODAL, "نجاح", "تم فتح الملف بنجاح")
EndIf
;تشغيل الملف مع الإنتظار
_SoundPlay($aSound, 1)
إعادة تشغيل الملف بدون الإنتظار
_SoundPlay($aSound)
;إغلاق الملف المفتوح
_SoundClose($aSound)
;الخروج من البرنامج
exit
/xmp>

_soundPause

تعريف بالدالة

هذه الدالة تستخدم لإيقاف الملف الصوتي إيقاف مؤقت
حيث يمكن إستأنافه

شكل الدالة

شكل الدالة يكن كالتالي
_soundPause(“رمز الدالة الأولى”)

هذه الدوال التي ستأتي كلها مرتبطة بشكل مباشر مع دالة _SoundOpen
لهذا علينا بأن لا نستغني عن هذه الدالة

نتيجة الدالة

الدالة تعود لنا بالرقم 1 في حال نجحت العملية
أو بالرقم 0 عند حدوث خطء
رمز الخطأ @error يكن
0 في حال تمت العملية بنجاح
1 في حال هناك خطء في الإيقاف المؤقت
أو 2 في حال هناك خطء في دالة _SoundOpen

ملاحظات

يمكن عكس الدالة أي إستأناف التشغيل باستبدال
_SoundPause
بدالة
_Soundresume
والتي لها نفس إعداداتها ونفس النتائج
لذا لا داعي أن نذكرها في قسم مستقل

مثال على الدالة


;إستدعاء الملفات اللازمة
#include <MsgBoxConstants.au3>
#include <Sound.au3>
;فتح الملف
Local $aSound = _SoundOpen(@WindowsDir & "\media\tada.wav")
;أمر شرطي للتأكد من فتح الملف
If @error = 2 Then
	MsgBox($MB_SYSTEMMODAL, "Error", "لم يتم العثور على الملف")
	Exit
Else
	MsgBox($MB_SYSTEMMODAL, "نجاح", "تم فتح الملف بنجاح")
EndIf
;تشغيل الملف بدون الإنتظار
_SoundPlay($aSound)
;الإنتظار لمدة ثانية
Sleep(1000)
;إيقاف الملف مؤقتا
_SoundPause($aSound)
;الإنتظار لمدة ثانية
Sleep(1000)
;إستأناف الملف
_SoundResume($aSound)
;حلَقة للتأكد من تشغيل الملف كاملا
While 1
	Sleep(100)
	If _SoundPos($aSound, 2) >= _SoundLength($aSound, 2) Then ExitLoop
WEnd
;غلق الملف الذي تم فتحه
_SoundClose($aSound)
;الخروج من البرنامج
exit

_SoundStop

تعريف بالدالة

إن هذه الدالة تستخدم للإيقاف النهائي لملف صوتي جاري تشغيله

شكل الدالة

إن هذه الدالة شكلها هو نفسه شكل الدالة السابقة
_soundStop(“نتيجة الدالة الأولى”)

نتيجة الدالة

الدالة تعود لنا بالرقم 1 في حال نجحت العملية
أو بالرقم 0 عند حدوث خطء
رمز الخطأ @error يكن
0 في حال تمت العملية بنجاح
1 في حال هناك خطء في الإيقاف
أو 2 في حال هناك خطء في دالة _SoundOpen

مثال على الدالة


;إستدعاء الملفات اللازمة
#include <MsgBoxConstants.au3>
#include <Sound.au3>
;فتح الملف
Local $aSound = _SoundOpen(@WindowsDir & "\media\tada.wav")
;أمر شرطي للتأكد من فتح الملف
If @error = 2 Then
	MsgBox($MB_SYSTEMMODAL, "Error", "لم يتم العثور على الملف")
	Exit
Else
	MsgBox($MB_SYSTEMMODAL, "نجاح", "تم فتح الملف بنجاح")
EndIf
;تشغيل الملف مع الإنتظار
_SoundPlay($aSound, 1)
;غلق الملف الذي تم فتحه
_SoundClose($aSound)
;الخروج من البرنامج
exit

_SoundLength

التعريف بالدالة

تستخدم هذه الدالة للتعرف على الوقت الكلي لملف صوتي

شكل الدالة

الدالة كذالك بسيطة جدا
حيث شكلها كما يلي
_SoundLength(“رمز دالة _SoundOpen”, النوع =1)
رمز دالة _SoundOpen لقد تعودنا عليه خلاص
أما النوع
فيمكن أن يكن 1 وهو أن تكن النتيجة كشكل الساعة المعروف أي ساعات:دقائق:ثوان
أو أن يكن بجزء الثانية وهو أن يعطيك الوقت عبارة عن عدد أجزاء الثواني وكل 1000 يمثل ثانية

نتيجة الدالة

الدالة تعود لنا بوقت الملف حسب النوع المختار في حال نجحت العملية
أو بالرقم 0 عند حدوث خطء
رمز الخطأ @error يكن
0 في حال تمت العملية بنجاح
1 في حال هناك خطء في النوع
أو 3 في حال هناك خطء في دالة _SoundOpen

ملاحظة

يستحسن استدعاء الدالة في متغير حتى يختصر عليك الوقت إن أردت أن تستخدم القيمة لاحقا

مثال على الدالة


;إستدعاء الملفات اللازمة
#include <MsgBoxConstants.au3>
#include <Sound.au3>
;فتح الملف
Local $aSound = _SoundOpen(@WindowsDir & "\media\tada.wav")
;أمر شرطي للتأكد من فتح الملف
If @error = 2 Then
	MsgBox($MB_SYSTEMMODAL, "Error", "لم يتم العثور على الملف")
	Exit
Else
	MsgBox($MB_SYSTEMMODAL, "نجاح", "تم فتح الملف بنجاح")
EndIf
;تشغيل الملف بدون الإنتظار
_SoundPlay($aSound, 0)
;معرفة الوقت الكلي
MsgBox($MB_SYSTEMMODAL, "الوقت الكلي للملف", "الوقت الكلي للملف بصيغة :" & @CRLF & "hh:mm:ss - " & _SoundLength($aSound, 1) & @CRLF & "بالجزء من الثانية - " & _SoundLength($aSound, 2))
;غلق الملف الذي تم فتحه
_SoundClose($aSound)
;الخروج من البرنامج
exit


_SoundPos

التعريف بالدالة

تستخدم هذه الدالة للتعرف على الموضع الحالي لملف صوتي

شكل الدالة

الدالة كذالك بسيطة جدا
حيث شكلها كما يلي
_SoundPos(“رمز دالة _SoundOpen”, النوع =1)
رمز دالة _SoundOpen لقد تعودنا عليه خلاص
أما النوع
فيمكن أن يكن 1 وهو أن تكن النتيجة كشكل الساعة المعروف أي ساعات:دقائق:ثوان
أو أن يكن بجزء الثانية وهو أن يعطيك الوقت عبارة عن عدد أجزاء الثواني وكل 1000 يمثل ثانية

نتيجة الدالة

الدالة تعود لنا موضع الملف حسب النوع المختار في حال نجحت العملية
أو بالرقم 0 عند حدوث خطء
رمز الخطأ @error يكن
0 في حال تمت العملية بنجاح
1 في حال هناك خطء في النوع
أو 3 في حال هناك خطء في دالة _SoundOpen

ملاحظة

يستحسن استدعاء الدالة في متغير حتى يختصر عليك الوقت إن أردت أن تستخدم القيمة لاحقا

مثال على الدالة


;إستدعاء الملفات اللازمة
#include <MsgBoxConstants.au3>
#include <Sound.au3>
;فتح الملف
Local $aSound = _SoundOpen(@WindowsDir & "\media\tada.wav")
;أمر شرطي للتأكد من فتح الملف
If @error = 2 Then
	MsgBox($MB_SYSTEMMODAL, "Error", "لم يتم العثور على الملف")
	Exit
Else
	MsgBox($MB_SYSTEMMODAL, "نجاح", "تم فتح الملف بنجاح")
EndIf
;تشغيل الملف بدون الإنتظار
_SoundPlay($aSound, 0)

;الإنتظار لمدة ثانيتين
sleep(2000)
MsgBox($MB_SYSTEMMODAL, "الموضع الحالي للملف", "الموضع الحالي للملف بصيغة :" & @CRLF & "hh:mm:ss - " & _SoundPos($aSound, 1) & @CRLF & "بالجزء من الثانية - " & _SoundPos($aSound, 2))
;غلق الملف الذي تم فتحه
_SoundClose($aSound)
;الخروج من البرنامج
exit

_SoundSeek

تعريف بالدالة

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

شكل الدالة

هذه الدالة فيها بعض الإعدادات حيث سنتعرف عليها
_SoundSeek(“رمز دالة _SoundOpen”, ساعات, دقائق, ثوان)
حيث الرمز إنتهينا منها هي معروفة لدينا
أما الساعات فهي نستخدمها لو أردنا التنقل لساعة معينة في الملف
دقائق للانتقال لدقيقة معينة في الملف
ثوان للإنتقال إلى ثانية معينة في الملف

نتيجة الدالة

النتيجة تكن كما يلي
1 في حال نجاح العملية
0 في حال فشل العملية
والرمز @error يكن كالتالي
0 نجاح العملية
1 فشل العملية
3 خطء في _SoundOpen

ملاحظات

الدقائق لا يجب أن تتجاوز 59 والثوان كذالك
فلو تجاوزت الثوان 59 فعند بلوغها ال60 تصبح 1 دقيقة يعني تنقل إلى خانة الدقائق والباقي منها على الثوان وأكمل حسب ذالك
ونفس الشيء للدقائق لو وصلت 59 دقيقة فال60 تصبح 1 ساعة وما تبقى منها على الدقائق والثوان وأكمل على ذالك

مثال على الدالة


;إستدعاء الملفات اللازمة
#include <MsgBoxConstants.au3>
#include <Sound.au3>
;فتح الملف
Local $aSound = _SoundOpen(@WindowsDir & "\media\tada.wav")
;أمر شرطي للتأكد من فتح الملف
If @error = 2 Then
	MsgBox($MB_SYSTEMMODAL, "Error", "لم يتم العثور على الملف")
	Exit
Else
	MsgBox($MB_SYSTEMMODAL, "نجاح", "تم فتح الملف بنجاح")
EndIf
;تشغيل الملف بدون الإنتظار
_SoundPlay($aSound, 0)

;الإنتظار لمدة ثانيتين
sleep(2000)
;التقديم إلى الثانية الرابعة في الملف
_SoundSeek($aSound, 0, 0, 4)
;معرفة الموضع الحالي
MsgBox($MB_SYSTEMMODAL, "الموضع الحالي للملف", "الموضع الحالي للملف بصيغة :" & @CRLF & "hh:mm:ss - " & _SoundPos($aSound, 1) & @CRLF & "بالجزء من الثانية - " & _SoundPos($aSound, 2))
;تكميل تشغيل الملف
_SoundPlay($aSound, 0)
;حلقة للتأكد من التشغيل الكلي للملف
While 1
	Sleep(100)
	If _SoundPos($aSound, 2) >= _SoundLength($aSound, 2) Then ExitLoop
WEnd

;غلق الملف الذي تم فتحه
_SoundClose($aSound)
;الخروج من البرنامج
exit


_SoundStatus

تستخدم هذه الدالة لمعرفة حالة الملف الصوتي

شكل الدالة

الدالة بسيطة جدا حيث لها إعداد واحد وهو رمز دالة _SoundOpen
شكلها كما يلي
_SoundStatus(“رمز _SoundOpen”)

نتيجة الدالة

حالة الملف عند نجاح العملية
0 في حال فشلت العملية
@error يكن كالتالي
0 عند نجاح العملية
3 عند حدوث خطء في _SOundOpen

قائمة الحالات

الدالة تعود بحالات الملف التالية
“playing”: عندما يكن الملف قيد التشغيل
“paused”: عندما يكن الملف في حالة إيقاف مؤقت
“stopped”: عندما يكن الملف في حالة إيقاف
“not ready”: عندما يكن الملف غير مفتوح أصلا

مثال عن الدالة


;إستدعاء الملفات اللازمة
#include <MsgBoxConstants.au3>
#include <Sound.au3>
;فتح الملف
Local $aSound = _SoundOpen(@WindowsDir & "\media\tada.wav")
;أمر شرطي للتأكد من فتح الملف
If @error = 2 Then
	MsgBox($MB_SYSTEMMODAL, "Error", "لم يتم العثور على الملف")
	Exit
Else
	MsgBox($MB_SYSTEMMODAL, "نجاح", "تم فتح الملف بنجاح")
EndIf
;تشغيل الملف بدون الإنتظار
_SoundPlay($aSound, 0)
;معرفة حالة الملف
MsgBox($MB_SYSTEMMODAL, "حالة الملف عند التشغيل", _SoundStatus($aSound))
;الإنتظار لمدة ثانيتين
sleep(2000)
;إيقاف الملف مؤقتا
_SoundPause($aSound)
;معرفة حالة الملف
MsgBox($MB_SYSTEMMODAL, "حالة الملف عند الإيقاف المؤقت", _SoundStatus($aSound))
;إيقاف الملف
_SoundStop($aSound)
;معرفة حالة الملف
MsgBox($MB_SYSTEMMODAL, "حالة الملف عند الإيقاف", _SoundStatus($aSound))

;غلق الملف الذي تم فتحه
_SoundClose($aSound)
;الخروج من البرنامج
exit


_SoundClose

التعريف بالدالة

تستخدم هذه الدالة لغلق ملف صوتي
أو لكي تنهي عمل دالة _SOundOpen
ويجب استخدامها قبل الخروج من البرنامج الخاص بك في حال استخدمت دالة _SoundOpen

شكل الدالة

_SoundClose (“رمز دالة _SoundOpen”)

مثال


;إستدعاء الملفات اللازمة
#include <MsgBoxConstants.au3>
#include <Sound.au3>
;فتح الملف
Local $aSound = _SoundOpen(@WindowsDir & "\media\tada.wav")
;أمر شرطي للتأكد من فتح الملف
If @error = 2 Then
	MsgBox($MB_SYSTEMMODAL, "Error", "لم يتم العثور على الملف")
	Exit
Else
	MsgBox($MB_SYSTEMMODAL, "نجاح", "تم فتح الملف بنجاح")
EndIf
;تشغيل الملف مع الإنتظار
_SoundPlay($aSound, 1)
;غلق الملف الذي تم فتحه
_SoundClose($aSound)
;الخروج من البرنامج
exit


ملاحظة مهمة بخصوص الدورة

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

خاتمة

أعزائي هذا ما استطعت أن أقدمه في هذا الدرس
فأرجو أن تعذروني على أي تقصير.
كما أرجو أن لا تؤاخذوني إذا كان الدرس طويل فهو مرتبط ولا يمكنني أن أقسمه لجزئين
كما أرجوكم لا تنسوني من دعائكم الصالح
وفضلا قمو بنشر الدورة حتى تعم الفائدة
أكرر لأقول
أنا بريء أمام الله عز وجل من كل من يستغل هذه الدروس في إيذاء الناس أو فعل ما يغضبه سبحانه وتعالى
إنما أنا أقدمها من باب المعرفة
ولكي نكن مستقلين جميعا في تعاملنا مع الحاسوب
كما لتطبيق أفكارنا على أرض الواقع
تقبلو تحياتي
وقبل أن أختم أحب أن أقدم لكم
رابط
الدرس الحادي عشر
الذي سيكن متوفر قريبا على الرابط السابق
أكرر وأرجوكم
لا تنسوني من دعائكم
والله أنا بالحاجة إليه
كما أرجو زيارة موقعنا وطرح أي إستفسار في منتدى لغة autoit
إليكم رابط الموقع
https://mx-blind.com/
ملاحظات :
لأي سؤال في الدورة إذا كان متعلق بأي درس من الدروس فيرجى طرح السؤال في تعليق في المنشور المتعلق بالدرس في المنتديات
وإلا بإمكانكم طرح السؤال في موضوع مستقل داخل منتدى اللغة

ومسك الختام السلام فالسلام عليكم ورحمة الله تعالى وبركاته

إليكم الدرس العاشر من الدورة الخاصة بلغة autoit

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

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

مقدمة

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


الآن دعونا نتعرف على الدوال التي سنتعرف عليها في درسنا هذا

الدوال التي سنعمل على شرحها في الدرس

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

  • WinActive
    لمعرفة إذا كانت النافذة هي التي على الواجهة أو لا
  • WinActivate
    لجعل النافذة في الواجهة
  • WinExists
    لمعرفة إذا كانت النافذة موجودة أو لا
  • WinClose
    لغلق نافذة
  • WinSetState
    لتغيير حالة النافذة

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

التفصيل

دعونا نتطرق إلى الدوال كما تعودنا أيها الأحباب

دالة WinActivate

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

شكل الدالة

WinActivate(“عنوان”, “نص النافذة”)
حيث العنوان هو عنوان النافذة التي تريد تفعيلها
والنص هو نص إضافي يمكن التخلي عنه, حيث هو يستخدم لو كنت تملك أكثر من نافذة بنفس الإسم
فمثلا, لتفعيل برنامج المفكرة نكتب

WinActivate(“Untitled – Notepad”)
كما يمكننا هنا إستخدام الكلاس أو ال رمز (handle)
حيث لو كنا نملك الرمز handle الفريد لكل نافذة هذا يغنينى عن إستخدام الإسم
والرمز handle يشبه ال pid الذي كنا قد تعرفنا عليه في الدرسين السابقين.
لاكن هذا مخصص للنوافذ وعناصر النوافذ, وهذا سوف نتعرف عليه بتعمق عند وصولنا إلى إنشاء النوافذ وعناصرها.
حيث أن الكلاس هو كذالك رمز يمكننا أن نتحكم في النافذة من خلاله
والكلاس ثابت حيث عند إنشاء النافذة يختار لها المصمم كلاس تعمل عليه
فمثلا المفكرة نقم بتفعيل نافذته باستخدام الكلاس كما يلي
WinActivate(“[CLASS:Notepad]”)
أتمنا أن يكن الأمر واضح
والآن

نتائج الدالة

عند النجاح تكن النتيجة هي الرمز الفريد handle الخاص بالنافذة
وعند الخطء لأي سبب من الأسباب, كعدم وجود النافذة يكن الرقم 0

ملاحظة :

في حال كان عدة نوافذ بنفس الإسم والخصائص فسوف تتفعل النافذة الأحدث منهم

طبعا سوف نحاول عمل مثال شامل للعمل في نهاية الدرس
والآن سوف ننتقل بكم إلى الدالة التالية

دالة WinActive

تستخدم هذه الدالة لمعرفة إذا كانت النافذة هي التي في الواجهة أو لا

شكل الدالة

شكل الدالة نفسه شكل الدالة السابقة يعني كي نتجنب التكرار سوف أضع المثال مباشرة
WinActive(“Untitled – Notepad”)
أو
WinActive(“[CLASS:Notepad]”)

ينطبق عليها نفس ما ينطبق على الدالة السابقة
إنما العمل يختلف
حيث هذه الدالة تمكننا من معرفة إذا كانت النافذة هي التي في الواجهة أو لا
ويمكن طبعا أن نستخدمها في أوامر شرطية كمثلا
if WinActive(“[CLASS:Notepad]”) then
msgBox(0, “نتيجة”, النافذة موجودة”)
else
msgBox(0, “نتيجة”, النافذة غير موجودة”)
endIf
هذا هو المثال البسيط على طريقة إستخدام هذه الدالة
والآن ننتقل إلى نتائج هذه الدالة

نتائج الدالة

نتيجتها نفس نتيجة الدالة السابقة
حيث عندما تكن النافذة في الواجهة النتيجة تكن رمز handle للنافذة, وإلا فالنتيجة تكن رقم 0

هذا هو عمل هذه الدالة البسيطة.

دالة WinClose

حيث تستخدم هذه الدالة لغلق نافذة مفتوحة
وهي سهلة جدا

شكل الدالة

شكل الدالة نفس الشكلين السابقين يعني يمكنك قراءة شكل الدالة الأولى وتطبيقه على كل الدوال التي سنذكرها اليوم إن شاء الله وإذا كان هناك أي إختلاف فأكيد سوف نذكره.
هذا مثال
Winclose(“Untitled – Notepad”)
أو
Winclose(“[CLASS:Notepad]”)

نتائج الدالة

عند النجاح قيمة النتيجة تكن الرقم 1 وعند الخطء تكن القيمة 0
وها قد إنتهينا من الدالة هذه
والآن ننتقل إلى دالة أخرى

دالة WinExists

تستخدم هذه الدالة لمعرفة إذا كانت النافذة موجودة أو لا

شكل الدالة

إن شكل هذه الدالة هو نفسه شكل الدوال السابقة أي المثال كالتالي
Winexists(“Untitled – Notepad”)
أو
Winexists(“[CLASS:Notepad]”)
طبعا هذه الدالة تستخدم عادي في الأوامر الشرطية فمثلا
if Winexists(“[CLASS:Notepad]”) then
msgBox(0, “نتيجة”, النافذة موجودة”)
else
msgBox(0, “نتيجة”, النافذة غير موجودة”)
endIf
هذا هو المثال البسيط على طريقة إستخدام هذه الدالة

نتائج الدالة

في حال كانت النافذة موجودة فالنتيجة تكن قيمتها الرقم 1
وإلا تكن القيمة 0

ملاحظة

في حال كانت النافذة مخفية هي تتعامل معها, يعني تتعرف عليها عادي وكأنها موجودة

دالة WinSetState

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

ملاحظة :
هناك دالة تستخدم لأخذ حالة النافذة, هذه سوف نتعرف عليها لاحقة لأنها تحتوي على بعض الإستعمالات التي لم نتطرق إليها بعد, لذا قررت أن أأخرها
على العموم لمن أراد أن يجرب التعامل معها فإسم الدالة
WinGetState

شكل الدالة

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

الحالة رمزها ملاحظة إن وجدت
إخفاء النافذة @SW_HIDE
إظهار النافذة @SW_show
تصغير النافذة @SW_MINIMIZE
تكبير النافذة @SW_MAXIMIZE
ترجيع النافذة للحالة الإفتراضية @SW_RESTORE
تعطيل النافذة @SW_DISABLE
تفعيل النافذة @SW_ENABLE

وهنا مثال للتوضيح
WinSetState(“Untitled – Notepad”, “”, @sw_show)
WinSetState(“[class:notepad]”, “”, @sw_hide)
والآن ننتقل إلى نتائج هذه الدالة

نتائج الدالة

هذه الدالة تكن قيمة نتيجتها بعد المهمة كالتالي
في حال نجحت المهمة فالنتيجة تكن قيمتها الرقم 1, وإلا فالنتيجة تكن الرقم 0

ملاحظات

إخواني إن هذه المجموعة من الدوال ليست الوحيدة المتوفرة في اللغة ولاكن هي الأهم
فهناك دوال أخرى رائعة, وسوف أذكر لكم بعضها هنا بدون تفصيل

دالة WinSetTitle

تستخدم هذه الدالة لتغيير إسم النافذة
وشكلها هو كالتالي
WinSetTitle (“العنوان”, “النص”, “الإسم الجديد”)
قيمة نتيجتها تكن الرقم 1 في النجاح و الرقم 0 في حال الخطء

دالة WinWait

حيث تستخدم هذه الدالة لإيقاف عمل الأداة أو البرنامج الذي قمنا بتصميمه إلى غاية أن تتواجد نافذة ما
هي مفيدة في حال كنا نتعامل مع النوافذ
وشكلها يكن كالتالي
WinWait(“العنوان”, “النص”, أقصى “وقت”)
حيث أقصى وقت يستخدم لتحديد وقت في حال لم تتواجد النافذة خلال الوقت المحدد يقم بشكل تلقائي بمتابعة تطبيق الأوامر التالية
والوقت يكتب بالألف جزء من الثانية
حيث لكتابة ثانية واحدة يجب كتابة 1000 ولكتابة 10 ثوان فيجب كتابة 10000 … إلخ

دالة WinWaitClose

حيث تستخدم هذه الدالة لإيقاف عمل الأداة أو البرنامج الذي قمنا بتصميمه إلى أن يتم إغلاق النافذة
شكلها كالتالي
WinWaitClose (“العنوان”, “النص”, أقصى “وقت”)
وينطبق عليها ما ذكرناه في الدالة السابقة

دالة WinWaitNotActive

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

دالة WinKill)

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

المهم شكلها يكن كالتالي
WinKill(“العنوان”, “النص”)
وينطبق عليها كل ما رأيناه في الدالة توأمها هههه

المثال الشامل


; أولا نقم بإستدعاء الملف الذي يحتوي على المتغيرات الخاصة برسائل المحاورة
#include <MsgBoxConstants.au3>

; نبدأ الآن بالعمل
; ملاحظة :
; إن هذه التعليقات لا تؤثر في عمل الكود, بل هي عادية
; سوف نعمل على المفكرة, لهذا أرجو حفظ كل أعمالكم عليها قبل تجربة المثال
; أولا دعونا نتعرف على إذا كانت المفكرة تعمل وإلا فسوف نقم بفتحها
if ProcessExists("notepad.exe") then
MSGBox($MB_OK+$MB_ICONINFORMATION+$MB_SYSTEMMODAL, "تجريب", "المفكرة تعمل بالفعل وسوف نقم بالتجارب على النسخة التي تعمل, لهذا يرجى حفظ كل أعمالكم عليها.")
else
run("notepad.exe")
MSGBox($MB_OK+$MB_ICONINFORMATION+$MB_SYSTEMMODAL, "تجريب", "تم تشغيل برنامج المفكرة.")
endIf
; دعونا ننتظر إلى أن تفتح نافذة المفكرة
WinWait("[class:notepad]", "", 3000)
; والآن دعونا نحول النافذة إلى الواجهة, وقبل هذا يجب أن نعرف إذا كانت النافذة في الواجهة أو لا
if WinActive("[class:notepad]", "") then
MSGBox($MB_OK+$MB_ICONINFORMATION+$MB_SYSTEMMODAL, "تجريب", "إن النافذة في الواجهة بالفعل.")
else
WinActivate("[class:notepad]", "")
MSGBox($MB_OK+$MB_ICONINFORMATION+$MB_SYSTEMMODAL, "تجريب", "تم وضع النافذة في الواجهة")
endIf
; والآن نعطيه أمر الإنتظار لبضع ثوان حتى يمكننا أن نلاحظ
sleep(3000)
; الآن نقم بإخفاء النافذة
WinSetState("[class:notepad]", "", @sw_hide)
; ننتظر لمدة معينة ثم نقم بإظهار النافذة
sleep(3000)
WinSetState("[class:notepad]", "", @sw_show)
; والآن نقم بوضع النافذة في الواجهة مرة أخرى
WinActivate("[class:notepad]", "")
; ثم نقم بغلق النافذة
Winclose("[class:notepad]", "")
; الآن نتأكد إذا كانت النافذة موجودة أو لا
if WinExists("[class:notepad]", "") then
MSGBox($MB_OK+$MB_ICONINFORMATION+$MB_SYSTEMMODAL, "تجريب", "النافذة موجودة")
else
MSGBox($MB_OK+$MB_ICONINFORMATION+$MB_SYSTEMMODAL, "تجريب", "النافذة غير موجودة")
endIf

أتمنا أن يكن المثال مبسط
ولأي سؤال أنا في الخدمة

خاتمة

أعزائي هذا ما استطعت أن أقدمه في هذا الدرس
فأرجو أن تعذروني على أي تقصير.
كما أرجو أن لا تؤاخذوني إذا كان الدرس طويل فهو مرتبط ولا يمكنني أن أقسمه لجزئين
كما أرجوكم لا تنسوني من دعائكم الصالح
وفضلا قمو بنشر الدورة حتى تعم الفائدة
أكرر لأقول
أنا بريء أمام الله عز وجل من كل من يستغل هذه الدروس في إيذاء الناس أو فعل ما يغضبه سبحانه وتعالى
إنما أنا أقدمها من باب المعرفة
ولكي نكن مستقلين جميعا في تعاملنا مع الحاسوب
كما لتطبيق أفكارنا على أرض الواقع
تقبلو تحياتي
وقبل أن أختم أحب أن أقدم لكم
رابط
الدرس الحادي عشر
الذي سيكن متوفر قريبا على الرابط السابق
أكرر وأرجوكم
لا تنسوني من دعائكم
والله أنا بالحاجة إليه
كما أرجو زيارة موقعنا وطرح أي إستفسار في منتدى لغة autoit
إليكم رابط الموقع
http://mx-blind.com/
ملاحظة :
لأي سؤال في الدورة إذا كان متعلق بأي درس من الدروس فيرجى طرح السؤال في تعليق في المنشور المتعلق بالدرس في المنتديات
وإلا بإمكانكم طرح السؤال في موضوع مستقل داخل منتدى اللغة

ومسك الختام السلام فالسلام عليكم ورحمة الله تعالى وبركاته

هدية لكم أيها الأحباب (كلمات في الإنجليزية يجب عليك معرفتها إذا كنت تريد تعلم الإنجليزية, طبعا مع الترجمة العربية لكل كلمة)

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

لتتعلم الانجليزية ابدأ بحفظ مفردات جديدة مهمة و مترجمة ,اليك سلسلة من المفردات المتنوعة قد تحتاجها في حياتك اليومية وستغني مفرداتك بذلك. اليك هذا الدرس
الشامل للعديد من المفردات المترجمة و المتنوعة

أكبر مجموعة كلمات انجليزية مترجمة للغة العربية
حيث تعد الكلمات التي تحتاجها للحديث اليومي وما يجب عليك أن تعرفه في الإنجليزية
وإن المفردات التي سنقدمها لكم اليوم هي مقسمة حسب الأقسام

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

ما الذي عليك فعله كي لا تنسى ما تحفظه؟

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

فيما يلي سنقدم لك أفضل مجموعة كلمات انجليزية مترجمة للعربية التي ستساعدك حتما على تكوين الحصيلة اللازمة، كي تبدأ مهمتك.

أولا: الألوان في اللغة الانجليزية

White.. أبيض
Black.. أسود
Red.. أحمر
Green .. أخضر
Blue .. أزرق
Yellow.. أصفر
Orange .. برتقالي
Pink .. وردي
Brown .. بني
Beige .. بيج
Grey .. رمادي
Turquoise .. فيروزي
Maroon .. كستنائي
Purple .. أرجواني
Violet .. بنفسجي

إن لحق باللون كلمة Light يكون المقصود بها الدرجة الفاتحة من اللون مثل Light blue (أزرق فاتح)، وإن لحق بها كلمة Dark، يكون المقصود بها الدرجة الغامقة من
اللون مثل Dark green (أخضر غامق). أما كلمة Bright إن لحقت بأحد الألوان، فتشير إلى أن اللون لامع مثل Bright red (أحمر لامع).

ثانيا أعضاء جسم الإنسان باللغة الانجليزية

Head .. رأس
Hair .. شعر
Forehead .. جبين
Eye .. عين
Eyebrow .. حاجب
Eyelid .. جفن
Pupil .. بؤبؤ العين
Iris .. قزحية
Eyelash .. رمش
Nose .. أنف
Mouth .. فم
Lips .. شفاه
Tongue .. لسان
Cheek .. خد
Temple .. صدغ
Ear .. أذن
Ear lobe .. شحمة الأذن
Chin .. ذقن
Throat .. حنجرة
Neck .. عنق
Chest .. صدر
Nipple .. حلمة
Armpit .. إبط
Navel – bellybutton .. سرة
Stomach .. معدة
Belly – Tummy .. بطن
Arm.. ذراع
Wrist .. ذراع
Finger .. إصبع
Thumb .. إبهام
Index finger .. السبابة
Middle finger .. الإصبع الأوسط
Ring finger .. إصبع الخاتم
Little finger .. الخنصر
Palm .. راحة اليد
Shoulders .. أكتاف
Shoulder blade .. لوح الكتف
Back .. ظهر
Buttocks .. أرداف
Hamstring .. أوتار الركبة
Elbow .. الكوع
Thigh .. فخذ
Knee .. ركبة
Leg .. ساق
Heel .. كعب
Arch .. قوس القدم
Toes.. إصبع القدم
Big toe .. أصبع القدم الكبير
Ankle ..الكاحل

ثالثا: أسماء الملابس بالانجليزية

Coat .. معطف
Jacket .. سترة
Sweater .. قميص صوفي
Shirt .. قميص
Pants .. بنطلون
Jeans .. جينز
Shorts .. سراويل، سروال قصير
Cap .. قبعة
Tie .. ربطة عنق
Shoes .. أحذية
Tennis shoe .. حذاء تنس
Boot .. حذاء طويل
Belt .. حزام
Sandal.. صندل
Flip-flop.. نعال، شبشب
Slipper.. شبشب
Bathrobe .. روب الحمام
Briefs .. سروال داخلي
Boxers .. سروال داخلي قصير
Sock .. جورب
Suit .. بدلة
Vest .. سترة
Tuxedo .. ملابس سهرة رجالي
Bow tie .. ربطة عنق صغيرة
Skirt .. تنورة
Miniskirt .. تنورة قصيرة
Blouse .. بلوزة
Stockings .. جوارب
Tights .. استرتش
High heels – Stilettos .. كعب عالي
Trainers .. حذاء تدريب
Wellingtons ..حذاء طويل الساق
Shoelace .. رباط الحذاء
Leather jacker .. سترة جلدية
Gloves .. قفازات
Underpants .. سراويل تحتية
Knickers .. كلسون
Bra .. حمالة صدر
Blazer .. سترة رياضية
Bathing suit .. زي السباحة
Swimming trunks .. سروال السباحة
Pyjamas .. بيجاما
Night gown .. ثوب النوم
Robe .. روب
Bikini .. بيكيني
Hat .. قبعة
Overcoat .. معطف
Trousers .. بنطلون
T-shirt .. تي شيرت
Raincoat .. معطف واق من المطر
Pullover .. البلوفر كنزة صوفية
Cardigan .. سترة من صوف محبوك
Jumper .. سترة أو قفاز
Thong .. حزام جلدي رفيع
Tracksuit .. بدلة رياضية للتدريب
Overalls.. ثياب العمل
Apron .. مئزر للمطبخ
Dress .. فستان
Purse .. محفظة
Suspenders .. حزام
Evening grown .. فستان سهرة
Veil .. حجاب أو نقاب
Slip .. ملابس داخلية
Panties .. سروال تحتي قصير

رابعا: أفراد العائلة بالانجليزية

Father .. والد
Mother .. والدة
Grandfather .. جد
Grandmother .. جدة
Grandson .. حفيد
Husband .. زوج
Wife .. زوجة
Son .. ابن
Daughter .. ابنة
Brother .. أخ
Sister .. أخت
Child.. طفل
Children .. أطفال
Kids .. أولاد
Uncle .. عم أو خال
Aunt .. عمة أو خالة
Cousin .. ابن العم أو ابن الخال
Nephew .. ابن الأخ أو ابن الأخت
Niece .. ابنة الأخ أو ابنة الأخت
Godfather .. عراب
Godmother .. عرابة
Godson.. الابن بالمعمودية
Goddaughter .. ابنة بالمعمودية
Stepfather .. زوج الأم
Stepmother .. زوجة الأب
Stepson .. ابن الزوج أو ابن الزوجة
Stepdaughter .. ابنة الزوج أو ابنة الزوجة
Stepbrother- Half-brother .. أخ غير شقيق
Stepsister- Half-sister .. أخت غير شقيقة
Father-in-law .. والد الزوج أو والد الزوجة
Mother-in-law .. والدة الزوج أو والدة الزوجة
Sister-in-law .. أخت الزوج أو أخت الزوجة
Siblings .. أشقاء
Boyfriend .. صديق الفتاة
Girlfriend .. صديقة
Partner .. شريك
Fiancé .. خطيب أو خطيبة

خامسا: المشاعر بالانجليزية

Bored .. ضجر أو ملل
Calm .. هادئ
Delighted .. مسرور
Depressed .. مكتئب
Disappointed .. مخيب للآمال
Disgusted .. مقرف
Enthusiastic- Excited .. متحمس
Exhausted .. منهك
Happy .. سعيد
Miserable .. بائس
Pleased .. مسرور
Relaxed .. مسترخ
Sad .. حزين
Stressed .. مرهق
Surprised .. مندهش
Tired .. متعب
Worried .. قلق

سادسا: الصفات بالانجليزية

Absent-minded .. شارد الذهن
Adventurous .. مغامر
Arrogant / Snobbish / conceited .. مغرور
Bad-tempered .. منفعل
Boring .. ممل
Brave .. شجاع
Calm .. هادئ
Cautious .. حذر
Cheerful .. مرح
Clever .. ذكي
Confident .. واثق من نفسه
Cowardly .. جبان
Crazy .. مجنون
Dishonest .. غير صادق
Easy-going سهل المعاشرة
Emotional .. عاطفي
Friendly .. ودود
Funny .. مضحك
Generous .. كريم
Good-humored .. فكاهي
Hard-working .. مجتهد
Honest .. صادق
Impatient .. غير صبور
Impolite .. غير مهذب
Impulsive .. متهور
Intelligent .. ذكي
Introverted .. انطوائي
Kind .. حنون
Lazy .. كسول
Mean.. لئيم أو حقير
Modest .. متواضع
Moody .. متقلب المزاج
Patient .. مريض
Polite .. مؤدب
Rude .. وقح
Sensible.. عاقل وحساس
Sensitive .. حساس
Serious .. خطير
Shy .. خجول
Sophisticated .. راقي وأنيق
Stupid .. غبي
Talented .. موهوب
Unfriendly .. عدائي
Witty .. بارع
Down to earth .. متواضع

سابعا: أسماء الوظائف والمهن بالانجليزية

Accountant .. محاسب
Actor .. ممثل
Actress .. ممثلة
Air hostess .. مضيفة طائرة
Air stewardess .. مضيفة جوية
Archeologist .. عالم آثار
Artist .. فنان
Anthropologist .. عالم بعلوم الإنسان
Baker .. خباز
Ballerina .. راقصة بالية
Bank manager .. مدير بنك
Barber .. حلاق
Beautician .. شخص يعمل في مؤسسة تجميل
Biologist .. عالم أحياء
Shoeshine .. ماسح أحذية
Botanist .. نباتي
Builder .. شخص يعمل في البناء
Butcher .. جزار
Buyer .. مشتري
Carpenter .. نجار
Chef .. رئيس الطهاة
Chemist .. كيميائي
Chief of police .. قائد شرطة
Civil servant .. موظف حكومي
Clerk .. كاتب
Composer .. ملحن
Cook .. طباخ
Copywriter .. مصحح قانوني
Decorator .. مصمم ديكور
Delivery boy .. موصل طلبيات
Dentist .. طبيب أسنان
Designer .. مصمم
Detective .. رجل مباحث
Director .. مخرج
Doctor .. طبيب
Dressmaker .. خياط
Economist .. خبير اقتصادي
Editor .. محرر
Engineer .. مهندس
Expert on folklore .. خبير في التراث الشعبي
Fashion coordinator .. منسق أزياء
Fireman .. رجل مطافي
Florist .. بائع الزهور
Geologist .. جيولوجي
Graphic designer .. مصمم جرافيك
Greengrocer .. بائع خضار وفاكهة
Hairdresser .. مصفف شعر
Illustrator .. مصور
Insurance broker .. وسيط التأمين
Interpreter .. مترجم
Janitor .. بواب
Journalist .. صحفي
Judge .. قاضي
Lawyer .. محامي
Lecturer .. محاضر
Mailman .. ساعي البريد
Mathematician .. عالم رياضيات
Mechanic .. ميكانيكي
Merchant .. تاجر
Meteorologist .. عالم أرصاد جوية
Model .. عارضة أزياء
Musician .. موسيقي
Newscaster .. مذيع
Novelist .. روائي
Nurse .. ممرضة
Worker .. عامل
Optician .. صانع أدوات بصرية
Painter .. رسام
Pharmacist .. صيدلي
Philosopher .. فيلسوف
Photographer .. مصور
Physicist .. عالم فيزيائي
Pilot .. طيار
Playwright .. كاتب مسرحي
Plumber .. سمكري
Poet .. شاعر
Police officer .. ضابط شرطة
Producer .. منتج
Programmer .. مبرمج
Psychiatrist .. طبيب نفسي
Publisher .. ناشر
Receptionist .. موظف استقبال
Reporter.. صحفي
Scientist .. عالم
Sculptor .. نحات
Secretary .. سكرتيرة أو سكرتير
Singer .. مغني
Surgeon.. جراح
Tailor .. خياط
Taxi driver .. سائق تاكسي
Teacher .. معلم
Translator .. مترجم
Typist .. كاتب على الآلة الكاتبة
Waiter .. نادل
Writer .. كاتب
Zoologist .. خبير في علم الحيوان

ثامنا: الكلمات الخاصة بالطعام في الانجليزية

Bacon .. لحم خنزير
Beef .. لحم بقر
Breakfast .. فطور
Butter .. زبدة
Cheese .. جبن
Chiken .. دجاج
Chili .. فلفل حار
Cornflakes .. رقائق الذرة
Cream .. قشدة
Duck .. لحم البط
Eggs .. بيض
Full fat-milk حليب كامل الدسم
Garlic .. ثوم
Goat cheese .. جبن الماعز
Ham .. لحم خنزير مدخن
Hamburger .. شطيرة لحم
Herring .. رنجة
Honey .. عسل
Hot dog .. سندويتش سجق
Jamp.. مربى
Ketchup .. عصير الطماطم
Lamb .. لحم خروف
Liver .. كبدة
Mayonnaise .. المايونيز
Mustard .. المسطردة
Noodles/ Pasta .. معكرونة
Sause .. صلصة
Pepper .. فلفل أسود
Pizza .. بيتزا
Vinegar .. خل
Yogurt .. زبادي
Rice .. أرز
Salmon .. سمك السلمون
Salt .. ملحم
Sausages .. نقانق
Spaghetti .. معكرونة اسباجتي
Spices .. توابل
Sugar .. سكر
Toast .. خبز محمص
Tuna .. تونة
Turkey .. لحم ديك رومي


وأخيرا، نأمل أن تساعدك هذه القائمة على وضع خطة لحفظ الكلمات الانجليزية وممارستها.
مع تحياتنا لكم أيها الكرام
لا تنسونا من دعائكم الصادق

ملاحظة :
تم نقل الكلمات من موقع وتم إعادة صياغتها كي تكن أكثر سلاسة.

عودة إلى دورة تعليم لغة autoit وإليكم الدرس التاسع

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

مقدمة

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

والآن دعونا نتعرف على دوال التحكم في العمليات,

دوال التحكم في العمليات

عزيزي سوف نتعرف على دالتين اليوم كمدخل
ألا وهما

  • ProcessClose
    لإيقاف عملية ما
  • ProcessExists
    للتحقق إذا كانت العملية موجودة أو لا

دعونا نبدء على بركة الله

دالة ProcessClose

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

شكل الدالة

تستخدم الدالة على الشكل التالي
ProcessClose(“إسم العملية أو رمز pid”)
يعني تحتوي على إعداد واحد وهو رمز pid أو إسم العملية متبوع بالإمتداد يعني كمثال

ProcessClose(“Notepad.exe”)
أو
ProcessClose(“1597”)
طبعا هذا كمثال, لا تجرب المثال الثاني لأنه يمكن أن يصادف عملية نظامية في جهازك.
أما المثال الأول فبإمكانك التجربة
بما أن شكل الدالة سهل جدا فلا داعي للتفصيل فيه كما إعتدنا.
فل نمر الآن مباشرة إلى النتائج التي تعطينا إياها هذه الدالة

نتائج الدالة

إن القيم التي تعطينا إياها الدالة بعد إنتهاء العمل هي كالتالي

  • رقم 1 في حال نجاح العملية
  • رقم صفر في حال لم تتمكن الدالة من إنهاء العملية لأي سبب من الأسباب

طبعا أيها الغوالي يمكنكم معرفة رمز الخطء من خلال @error الذي تعلمناه في الدرس السابق
وكي لا أطيل عليكم كثيرا لا داعي لذكر جميع رموز الخطء الناتجة عن هذه العملية للتفصيل أكثر يمكنكم القراءة عنها إما في موقع autoit الرسمي كما يمكنكم طلبها إن شئتم وسوف أقدمها لكم.

والآن سوف نمر للدالة الثانية ومن ثم أعرفكم على دالة أخرى حلوة يمكننا الإستفادة منها كي نقم بعمل مثال بسيط في نهاية الشرح

دالة ProcessExists

حيث تستخدم هذه الدالة للتحقق إذا ما كانت العملية نشطة أو لا
وبدون إطالة نمر لشكل الدالة

شكل الدالة

شكل الدالة يكن نفس شكل الدالة السابقة حيث
ProcessExists(“إسم العملية أو رمز pid”)
ورمز pid هو الرمز الفريد للعملية كما تحدثنا عنه أعلاه
طبعا إسم العملية مرفق بالإمتداد

ملاحظة :

إن هذه الدالة يمكننا إستخدامها في أمر شرطي كمثلا نقل
if ProcessExists(“notepad.exe”) then
msgBox(0, “تجربة”, “العملية نشطة”)
else
msgBox(0, “تجربة”, “العملية غير موجودة”)
endIf
وسوف نوضح ذالك في المثال

نتيجة الدالة

إن هذه الدالة تعطينة قيمتين بعد الإنتهاء وهما كالتالي

  • رمز pid للعملية في حال كانت العملية موجودة
  • رقم 0 في حال لم تكن العملية موجودة

الدالة الإضافية التي أردت أن أشرحها كذالك اليوم هي دالة sleep
أي دالة الإنتظار بين القيام بعملية وأخرى

فهي بنا للتعرف على هذه الدالة

دالة sleep

إن هذه الدالة بسيطة جدا
حيث إستخدامها يعطي مهلى نحن نحددها بين عملية وأخرى
كمثلا نريد تشغيل عملية ثم بعد 15 ثانية نقم بإغلاقها أو أخذ أي معلومة عنها
نمر بسرعة إلى شكل الدالة

شكل الدالة

شكل الدالة يكن كالتالي
sleep(“رقم أجزاء الثانية”)
حيث تستجيب هذه الدالة للأجزاء بالألف من الثانية
يعني لكي نعطي مهلة 1 ثانية علينا كتابة 1000
ولنعطي مهلة 10 ثوان فعلينا كتابة 10000
إلى آخره
هذا فقط ما تحتويه هذه الدالة البسيطة.

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

مثال

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


#include <MsgBoxConstants.au3>
;نقم أولا بفحص إذا كانت العملية تعمل أو لا
if ProcessExists("notepad.exe") then
MSGBox($MB_OK+$MB_ICONINFORMATION+$MB_SYSTEMMODAL, "تجريب", "العملية موجودة بالفعل")
exit
; حيث يعطينا رسالة إذا كانت موجودة تفيد بأنها موجودة ويطلع من منفذ الأوامر
else
; وإلا فيقم بتشغيل البرنامج
local $run = runWait("notepad.exe")
;ثم ينتظر ثانية
sleep(1000)
ثم يعطينا رسالة تفيد بتشغيل العملية
MSGBox($MB_OK+$MB_ICONINFORMATION+$MB_SYSTEMMODAL, "تجريب", "تم فتح البرنامج")
;بعد ذالك يقم بإنهاء العملية, أي يقم بغلق برنامج المفكرة
processClose("notepad.exe")
;ثم يطلع من منفذ الأوامر
exit
endIf

خاتمة

أعزائي هذا ما استطعت أن أقدمه في هذا الدرس
فأرجو أن تعذروني على أي تقصير.
كما أرجو أن لا تؤاخذوني إذا كان الدرس طويل فهو مرتبط ولا يمكنني أن أقسمه لجزئين
كما أرجوكم لا تنسوني من دعائكم الصالح
وفضلا قمو بنشر الدورة حتى تعم الفائدة
أكرر لأقول
أنا بريء أمام الله عز وجل من كل من يستغل هذه الدروس في إيذاء الناس أو فعل ما يغضبه سبحانه وتعالى
إنما أنا أقدمها من باب المعرفة
ولكي نكن مستقلين جميعا في تعاملنا مع الحاسوب
كما لتطبيق أفكارنا على أرض الواقع
تقبلو تحياتي
وقبل أن أختم أحب أن أقدم لكم
رابط
الدرس التاسع
الذي سيكن متوفر قريبا على الرابط السابق
أكرر وأرجوكم
لا تنسوني من دعائكم
والله أنا بالحاجة إليه
كما أرجو زيارة موقعنا وطرح أي إستفسار في منتدى لغة autoit
إليكم رابط الموقع
http://mx-blind.com/
ملاحظة :
لأي سؤال في الدورة إذا كان متعلق بأي درس من الدروس فيرجى طرح السؤال في تعليق في المنشور المتعلق بالدرس في المنتديات
وإلا بإمكانكم طرح السؤال في موضوع مستقل داخل منتدى اللغة

ومسك الختام السلام فالسلام عليكم ورحمة الله تعالى وبركاته

الدرس الخامس في دورة تعليم 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
كنا قد تعرفنا على اللغىة من خلال المقدمة
ثم تعرفنا في الدرسين السابقين على أهم أقسام وأساسيات هذه اللغة
واليوم سنتعرف على شيء أساسي أيضا وهو لا يمكننا الإستغناء عنه في أي لغة برمجة
ألا وهو المتغيرات النظامية
قبل أن نباشر في الدرس دعوني أضع لكم
رابط الدرس الثاني
لمن لم إلتحق بالدورة حديثا

دعونا نتعرف أولا على ما المقصود بالمتغيرات النظامية

إن للمتغيرات النظامية فوائد كثيرة
فمن خلالها يمكننا التعرف على أمور كثيرة في النظام كمثلا
معرفة إسم المستخدم
الوصول السهل للمجلدات النظامية
معرفة إصدار ونوت النظام المثبت
معرفة الوقت والتاريخ
وغيرها من الأمور الهامة جدا


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

ما الفرق بين المتغير النظامي والمتغير العادي؟ وكيف يمكننا إستدعاء المتغير النظامي؟

كما تعرفنا في الدروس السابقة أن المتغيرات في هذه اللغة هي 4 أنواع
ونرمز لها بالرمز $
حيث هو الرمز الذي يعرف المتغير في هذه اللغة.
أما عن المتغيرات النظامية فالأمر مختلف تماما
حيث يوجد نوع واحد من المتغيرات النظامية
وهو يرمز له بعلامة الآت
@
ثم إسم المتغير
حيث هي متغيرات معرفة في اللغة لا يمكننا إنشاء أو تغيير قيمتها
مثال :
لمعرفة إسم المستخدم نقم بإستدعاء المتغير النظامي التالي
@userName
لاحظ هنا عزيزي أننا قمنا بالتعريف أولا بالمتغير النظامي وذالك بإستخدام الرمز المخصص له وهو علامة الآت
@
ثم إسم المتغير الذي قيمته هي إسم المستخدم
وهو
UserName
ويتم إستدعاء كل المتغيرات النظامية بنفس الطريقة

أهم المتغيرات النظامية

1. أهم المتغيرات النظامية التي تعطينا معلومات عن الجهاز أو النظام

المتغير النظامي فائدته
@username معرفة إسم المستخدم الحالي
@computerName معرفة إسم الحاسوب
@CPUArch معرفة إذا كان المعالج الخاص بالحاسوب x64 أو x86
@IPAddress1 لمعرفة رقم المعرف IP
@OSLang معرفة لغة الويندوز المثبت
@OSVersion لمعرفة إصدار الويندوز مثلا “win7”
@OSBuild لمعرفة الإصدار التركيبي للويندوز
@OSArch لمعرفة نوت الويندوز الحالي x64 أو x86

2. أهم المتغيرات التي تعطينا معلومات عن التريخ والوقت

المتغير النظامي فائدته
@hour لمعرفة الساعة الحالية من اليوم, وهو يعمل بنظام 24 ساعة حيث يبدء من 00 إلى 23
@min لمعرفة الدقيقة الحالية من الساعة, حيث يبدء من 00 إلى 59
@@sec لمعرفة الثانية الحالية من الدقيقة, حيث يبدء من 00 إلى 59
@mDay رقم اليوم من الشهر, حيث يبدء من 01 إلى 30 أو 31 حسب الشهر الحالي
@mon لمعرفة الشهر الحالي, حيث يبدء من 00 إلى 12
@wday رقم اليوم في الأسبوع, حيث يبدء من 1 إلى 7 أي من السبت إلى الجمعة
@YDay لمعرفة اليوم الحالي من السنة, حيث يبدء من 001 إلى 365 أو 366, حسب السنة
@year لمعرفة السنة الحالية, مثلا 2018

3. أهم المتغيرات التي تعرفنا على المسارات النظامية المختلفة

المتغير النظامي فائدته
@AppDataCommonDir مسار مجلد program data
@AppDataDir مسار مجلد appdata
@CommonFilesDir مسار مجلد Common Files
@DesktopCommonDir مسار سطح المكتب العام
@DesktopDir مسار سطح المكتب للمستخدم الحالي
@DocumentsCommonDir مسار المستندات العام
@MyDocumentsDir مسار مجلد مستنداتي
@FavoritesCommonDir مسار المفضلة العام
@FavoritesDir مسار المفضلة الخاصة بالمستخدم الحالي
@HomeDrive مسار القرس النظامي
@LocalAppDataDir مسار مجلد local
@ProgramFilesDir مسار مجلد program files في نظام 32, أو program files (x86) في نظام 64
@ProgramsCommonDir مسار مجلد البرامج التي تجدها في قائمة إبدء, (المسار العام)
@ProgramsDir مسار مجلد البرامج الموجود في قائمة إبدء (المسار الخاص بالمستخدم الحالي فقط)
@StartMenuCommonDir مجلد قائمة إبدء العام
@StartMenuDir مجلد قائمة إبدء الخاص بالمستخدم الحالي فقط
@StartupCommonDir مجلد بدء التشغيل العام
@StartupDir مجلد بدء التشغيل الخاص باللمستخدم الحالي فقط
@SystemDir مسار مجلد system32
@TempDir مسار مجلد الملفات المؤقتة
@UserProfileDir مسار مجلد المستخدم الحالي
@WindowsDir مسار مجلد windows

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

خاتمة :

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

ملاحظة :
الدرس الرابع سوف يكن متوفر قريبا على هذا الرابط
رابط الدرس الرابع
ومسك الختام السلام
فالسلام عليكم ورحمة الله تعالى وبركاته

الدرس الثاني في دورة تعلم لغة autoit

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

الأوامر الشرطية

تستخدم الجملة الشرطية IF عند حاجتنا لاتخاذ قرارات مختلفة حسب شرط معين .
مثال : 
إذا كانت درجة الطالب أكبر من أو يساوي 60 فهو ناجح ، وإذا كانت أقل من 60 فهو راسب 
وللأمر الشرطي عدة صيغ
دعونا نتعرف عليها اليوم

صيغة  IF – THEN

IF    الشرط المطلوب اختباره THEN الأمر الذي سيتم تنفيذه اذا كان الشرط صحيح

مثال :

IF $var >=60 then return “ناجح”

صيغة  IF – THEN – ENDIF

IF    الشرط المطلوب اختباره THEN 
الأوامر أو الجمل التي سيتم تنفيذها اذا كان الشرط صحيح
ENDIF

مثال :


IF $var >=60 then 
return “ناجح”
ENDIF

صيغة  IF – THEN – ELSE

IF    الشرط المطلوب اختباره THEN
مجموعة الجمل لتي سيتم تنفيذها اذا كان الشرط صحيح
ELSE
مجموعة الجمل التي سيتم تنفيذها إذا كان الشرط خاطء
ENDIF

مثال :


IF $var >= 60 then
return “ناجح”
ELSE
return “غير مجتاز”
ENDIF

صيغة  IF – THEN – ELSEIF

IF    الشرط الأول المطلوب اختباره THEN
مجموعة الجمل لتي سيتم تنفيذها اذا كان الشرط الأول صحيح
ELSEIF   الشرط الثاني لمطلوب اختباره THEN
مجموعة الجمل التي سيتم تنفيذها إذا كان الشرط الثاني صحيح
ELSE
مجموعة الجمل التي سيتم تنفيذها إذا كانت كل الشروط خاطئة
ENDIF

مثال :


IF $var >=90 then 

return “ممتاز”

ELSEIF $var>=80 then 
return “جيدجدا”
ELSEIF $var >=70 then 
return “جيد”
ELSEIF $var >=60 then 
return “مقبول”
ELSE
return “غير مجتاز  ”
ENDIF

الجملة الشرطية switch CASE :

تستخدم هذه الجملة إذا كان هناك عدة احتمالات للشرط ، فهي تقوم بنفس عمل جملة IF ولكن بطريقة أسهل .——————————————————————————–
الصيغة العامة لها :

switch الأمر الذي تريد إختباره وتقييمه
CASE الاحتمال الأول 
يتم تنفيذ مجموعة الجمل 1

CASE الاحتمال الثاني 
يتم تنفيذ مجموعة الجمل 2
CASE ELSE  
الجمل التي سيتم تنفيذها في حالة عدم تحقق أي شرط من الشروط السابقة

endSwitch

مثال على switch CASE


switch $var
CASE 90 TO 100
return “ممتاز ”
CASE 80 TO 89
return “جيد جدا”
CASE 70 TO 79
return ” جيد ”
CASE 60 TO 69
return “مقبول ”
case else 
return “غير مجتاز ”
endSwitch

الأمر الشرطي select case

يستخدم هذا الخيار في حال تريد أن تقم بعرض خيارات على المستخدم وتريد معرفة الخيار الذي اختاره وتضع له أوامر ينفذها
يكن تركيب الكود كالآتي
select
case الإحتمال الأول
الأمر
case الإحتمال الثاني
الأمر
case else
الأمر في حال لم يتنفذ أي خيار من الذي حددته
endSelect
مثال

إظهار رسالة نعم ولا للمستخدم


$msg = MSGBox(4, “هل تريد حذف الملف”, إضغط على نعم إن كنت تريد المتابعة أو لا إذا كنت تريد إلغاء الأمر”)
select
case $msg = 6
msgBox(0, “الخيار”, “لقد تم الضغط على نعم”)
case $msg = 7
msgBox(0, “الخيار”, “لقد تم الضغط على لا”)
endSelect

الحلقات التكرارية Loop

تعريفها
فائدة الحلقة التكرارية هي أنها إذا كان شئ يتكرر أكثر من مرة فلا داعي لكتابته العديد من المرات تستخدم الحلقة التكرارية و تضع فيها العدد أي عدد مرات التكرار
و الحلقة تفي بالغرض هذا كل شئ
هناك عدة أنواع في لغة autoit
سنستعرضها في ما يلي

Do Until Loops

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


Local $i = 0
Do
MsgBox(0, “قيمة المتغير $i هي :”, $i)
$i = $i + 1
Until $i = 10

هنا أنشأنا متغير إسمه $i
وأخبرنا الحقل التكراري أنه يعرض لنا قيمة المتغير $i وتزويد رقم 1 كل مرة
إلى غاية تحقق القيمة 10 في المتغير $i

While Loops

هذا الحقل هو متميز
حيث يبقى يعمل حتى القيمة المحددة
وإن لم تتحقق فيبقى يعمل
مثال :


$counter = 0
While $counter <= 5 MsgBox(0, "قيمة المتغير $counter هي:", $counter) $counter = $counter + 1 WEnd

For Loops

هذا الحقل نستخدمه في العد
وبدون إعلان متغير سابق
حيث يمكننا مثلا العد من 5 إلى 10 أو من 10 إلى 5 وبكل سهولة
مثال
For $counter = 5 to 10
MsgBox(0, “القيمة هي : “, $counter)
Next
حيث بكلمة next ننهي إطار الحلقة التكرارية
لا تقلق عزيزي إذا صعب عليك هذا الأمر
فنحن الآن نقم بالإستعراض فقط
ومعرفة القاعدة
وأكيد سنتوسع فكلما عرفناه في الدروس السابقة
هي هذه القواعد الأساسية في لغة autoit وفي كل لغات البرمجة
في الدرس القادم سنتعرف على بعض الماكروات المهمة macros
سيكون الدرس الثالث متوفر قريبا من خلال
هذا الرابط
تحياتي ولا تنسوني من دعائكم الصالح