أوتوات
المحتويات
- يوجد الكثير من الإضافات لها
- أمثلة
- مايو 2001
- دوال المستخدم
- و 16 مليون عنصر كحد أقصى
- ديسمبر 2002
- مميزات
- حدود الأوامر
- يناير 2002
- سبتمبر 1999
- أنواع البيانات
- الواجهة الرسومية GUI
- If StringInStr($nums, ",") < 1 Then
- الملاحظات أو التعليقات
- يناير 2003
- الحلقات
- الدوال
- المصفوفات
- المكتبات UDF
- مرفقاته
- المتغيرات
- If _findAvg(GUICtrlRead($textbox)) = "malform1" Then
- يناير - ابريل 1999
- الماكرو Macro
- يناير 1999
- مطورون
- $ans = $ans / $sData[0]
- جلب المتوسط الحسابي
- Else
- حدوده
- العمليات
- رخصته
- ;---------------------------------->
- أكتوبر 1998
- ;Clean up input format----------------->
- فبراير 2004
- سبتمبر - مايو 1999
- #region---------------GUI-----------------------
- استخداماته
- WEnd
- الشرط
- التركيب النحوي
- ديفيد نوتال (David Nuttall) يعرف بـ Nutster
- مارس 2003
- أغسطس 1999

بدايةً، أوتوات (تنطق بالإنجليزية aw-tow-it) هي لغة برمجة نصية مجانية تشبه لغة بيسك صممت لأتمتة نوافذ الويندوز واستخدامات عامة أخرى، تدمج اللغة بين محاكاة لوحة المفاتيح، وحركات المؤشر، ونقراته، والتحكم بالنوافذ لتؤدي مهام الأتمتة بطرق غير ممكنة بلغات أخرى مثل في بي سكربت و SendKeys. أوتوات كذلك لا تعتمد على غيرها فيما عدا نظام التشغيل. وتعرض الأقسام التالية جوانب أخرى من الموضوع.
وفي هذا الصدد، في البداية كانت أوتوات بسيطة الوظائف، ولكنها تطورت بدرجة كبيرة خصوصا في الإصدار الثالث V3 حيث أضيفت لها خلال هذا الإصدار الكثير من الخوارميات(الدوال)، وتطورت فيها خاصية واجهات المستعمل الرسومية، وتم تحسين محررها وإضافة أدوات كثيرة إليه. وهي الآن تملك بيئة تطوير متكاملة معتمدة محررها (سايت) المعتمد على سينتيلا (مكتبة برمجية).
نبذة تاريخية
من جهة ثانية، بعد كتابة الأوامر النصية(Script) يتم تحويله إلى صيغة تنفيذية تعمل على ويندوز ويمكن ضغطها باستخدام يو بي إكس ليصغر حجمها ويمكن إضافة إليها الكثير من الوظائف عن طريق مكتبات أوتوات تسمى UDF وهي اختصار لـUser Defined Functions.
يوجد الكثير من الإضافات لها
- منتدى دعم نشط على الإنترنت (إنجليزي)
- تدعم بروتكولات TCP, وUDP.
- تدعم كائنات COMوهي اختصار لـ(Component Object Model) دعماَ جيداَ.
- تتعامل مع مكتبات الربط الديناميكي (Win32 DLL).
- المجمع يشمل دمج ملفات مع البرنامج لتستخرج عند تشغيلها.
- إنشاء الواجهات الرسومية (GUI) بكثير من عناصر التحكم الخاصة بها.
- إنشاء الرسائل وصناديق الإدخال.
- التعامل مع بعض أنواع الصوتيات كالتشغيل, والتوقيف بدون إضافات.
- التحكم بالنوافذ, والعمليات في الذاكرة.
- محاكاة كاملة لجميع أفعال المستعمل تحريك الفأرة, والكتابة, وغيرها.
- نتيجة التجميع ملف تنفيذي يعمل بذاته على نظام ويندوز(Windows).
- يدعم ترميز يونيكود (Unicode) من الإصدار 3.2.4.0.
- يدعم نظام 64 بت (64 bit) من الإصدار 3.2.10.0.
- دعم كامل للتعابير النمطية (Regular expression).
وعلى صعيد آخر، يعمل مع User Account Control الخاصة بويندوز فيستا (Windows Vista).
وفي السياق ذاته، متوافق مع الأنظمة Windows 2000 / XP / 2003 / Vista / 2008 / Windows 7 / 2008 R2.
أمثلة
- Hellow World!
- ; إظهار Hellow World! في صندوق رسالة.
- MsgBox(0, "Title", "Hellow World!")
- Exit
مايو 2001
من جهة ثانية، كانت الشيفرة المصدرية(Source Code) لأوتوات في فوضى تامة, تم كتابة الشيفرة المصدرية بالكامل من جديد في C++.
دوال المستخدم
- يمكن للمستعمل عمل دوال خاصة به عن طريق Func وينتهي بـ EndFunc
- مثال :
- UserMsg("النص","العنوان")
- Func UserMsg($Text,$Title)
- $Text = '.:: ' & $Text & '::.'
- MsgBox (64,$Title,$Text)
- Return 1
- EndFunc
و 16 مليون عنصر كحد أقصى
- المتغيرات : لا يمكن أن يتخطى اسم المتغير 255 حرف.
- الدوال: أقصى عمق لنداء الدوال هو 5100 مستوى, ولا يوجد حد لعدد الدوال.
- النوافذ : أقصى عدد لعناصر التحكم هو 65532, ولا يوجد حد لعدد النوافذ
ديسمبر 2002
أوتوات 2.64 كان آخر إصدار من أوتوات 2.
مميزات
- مجاني بالكامل.
- صغير الحجم نسبيا فحجمه بالكامل مع المحرر الاعتيادي على وجه التقريب 8 م.ب
- ذات صيغة برمجة سهلة الفهم, من عائلة لغات البيسك(Basic).
حدود الأوامر
- هناك حدود للأوامر فضلًا عن حدود ويندوز الافتراضية.
- وهي :
- النص البرمجي: أقصى عدد أسطر للنص البرمجي الواحد هو 4,095
- النصوص : أقصى حجم للنص الواحد هو 2147483647 خانة
- الأرقام : أقصى عدد يمكن تحته هو 9223372036854775807
- القيم الثنائية : يمكن أن يحتمل القيمة الثنائية الواحدة 2147483647 بايت
- المصفوفات :-
- يمكن عمل 64 بعد للمصفوفة كحد أقصى
يناير 2002
ومن ناحية أخرى، أوتوات 2.62, تتضمن Exe2Aut (تفكيك الصيغة التنفيذية إلى الشيفرة المصدرية), وتمت إضافة AutoItDLL.
سبتمبر 1999
ومن جهة أخرى، تم إطلاق أوتوات 2.1, والذي كان أول إصدار يمكن تحويل النص البرمجي(script) إلى ملف تنفيذي يعمل على ويندوز(Windows).
أنواع البيانات
- في أوتوات عدة أنواع من البيانات هي :
- النصوص String
- الأرقام Numbers
- Booleans
- المؤشر Pointer وتسمى مقابض النوافذ بـ HWnd
- قيم ثنائية Binary
الواجهة الرسومية GUI
ومن جهة أخرى، يمكن عمل واجهة من خلال السابق فالتعامل مع الواجهات يتم عن طريق دوال عادية تبدأ بكلمة GUI. إلى جانب الحلقات.
If StringInStr($nums, ",") < 1 Then
EndIf
Return ("malform1")
الملاحظات أو التعليقات
- مثال :
- $V = 1 ;ملاحظة لسطر واحد
- #cs
- ملاحظة
- $V = 1
- ملاحظة
- ملاحظة
- #ce
كذلك، هناك يمكن عمل ملاحظة لسطر واحد عن طريق الفاصلة المنقوطة ;، ويمكن عمل ملاحظات لأسطر عديدة عبر وضعها بين #cs و#ce
يناير 2003
وفي هذا الصدد، تطورأوتوات في فترة 2001-2003 تطورا بسيطا جدا, لاحظ جوناثن (Jonathan Bennett) أن الشيفرة المصدرية باتت في فوضى عارمة كالسابق, كانت صيغة كتابة أوتوات 2 سيئة جدا.
من جانب آخر، بدأ جوناثن يطور بيئة أوتوات 3, وقرر تغيير صيغة كتابة أوتوات.
الحلقات
- هناك الحلقات الافتراضية وهي :
- حلقة For...Next
- حلقة While...WEnd
- حلقة Do...Until
- حلقة For...In...Next
الدوال
الصيغة العامة للدوال هي :
حيث تشير الأقواس المتوسطة [ ] إلى مدخلات غير ضرورية.
من جهة ثانية، وتسمى الدوال بمسميات سهلة, عادة ما تبدأ باسم الشيء المتخصص فيه, أمثلة على الدوال.
في هذا الإطار، Function(First Parameter, Second Parameter, [ Third Parameter, [ Fourth Parameter)
- FileCopy ("source", "dest" [, flag])
- FileDelete ("path")
- DllCall ("dll", "return type", "function" [, type1, param1 [, type n, param n)
- ProcessClose ("process")
- RegRead ("keyname", "valuename")
- StringLen ("string")
المصفوفات
وعلى صعيد آخر، Global $Array1[4] = [1,'String',True,0xf5d54a] ;مصفوفة من بعد واحد عدد العناصر 4
Global $Array2[4][3] ;مصفوفة من بعدين عدد العناصر 12 عنصر
- لا بد من تعريف المصفوفات بأحد الكلمات السابقة Local و Global و Dim.
- وتعين الأبعاد باستخدام الأقواس [ ].
- مثال :
المكتبات UDF
وفي هذا السياق، يحتوي أوتوات الكثير من المكتبات, منها ما هو قياسي موجود افتراضيا ومنها ماهو من عمل المستعمل وهي كثيرة جدا, ومتوفرة في منتدى البرنامج.
يمكن تضمين المكتبات عن طريق #Include.
مرفقاته
وفي هذا الصدد، Obfuscator : أداة مرفقة مع سايت لجعل قراءة الشيفرة البرمجية صعبة جدا, وتستعمل لحماية مصادر البرامج في حالة عمل إعادة تفكيك.
ومن ناحية أخرى، AutoIt Windows Info : تجلب معلومات النوافذ, وتعتبر أداة أساسية لأن مهمة أوتوات خي الأتمتة النوافذ في المقام الأول.
علاوةً على ذلك، FuncPopUp : أداة مرفقة مع سايت لتسهيل كتابة الدوال بحيث تظهرها في طرف النافذة.
تملك أوتوات عدة أدوات ومحررات, منها:
إضافةً إلى ذلك، CodeWizard : أداة مرفقة مع سايت لتسهيل كتابة شيفرات الصناديق.
- محرر jEdit 4 AutoIt : وهو نسخة معدلة من المحرر جي إيدت لتتناسب مع أوتوات
- برنامج AutoIt Debugger : منقح لأوتوات.
- عدة أدوات قياسية, منها :
ومن ناحية أخرى، AU3Record : أداة مرفقة مع سايت لتسجيل أفعال المستعمل لتكرارها في الشيفرة البرمجية.
Tidy : أداة مرفقة مع سايت لترتيب الشيفرة البرمجية.
إضافةً إلى ذلك، محرر SciTE4Autoit : وهو المحرر الرسمي لأوتوات, وهو تخصيص للمحرر سايت ليتناسب بشكل كامل مع أوتوات.
علاوةً على ذلك، Koda : اداة مرفقة مع سايت لانتاج أوامر انشاء النوافذ باستخدام واجهة سهلة الاستخدام.
المتغيرات
- مثال :
- Dim $Var1 = 125
- Global $Var2 = 'Wikipedia'
- $Var3 = 0xf0ed5a
علاوةً على ذلك، ليس من المهم تعريف المتغير قبل استخدامه, يكون تعريف المتغير بأحد الكلمات الثلاث : Local و Global و Dim.
كذلك، ويسبق المتغير بعلامة الدولار $ للدالة على أنه متغير. ولا يجب تحديد نوع المتغير عند تعريفه
If _findAvg(GUICtrlRead($textbox)) = "malform1" Then
GUICtrlSetData($ansLabel,"Error")
يناير - ابريل 1999
تم إصدار عدة إصدارات أخرى وصلت إلى 1.8 مع ميزات مهمة جديدة.
الماكرو Macro
إضافةً إلى ذلك، وهي متغيرات يتم تعريفها تلقائيا, وهي للقراءة فقط. تبدأ بعلامة at @ للدلالة على أنها ماكرو.
- مثال :
- @ScriptDir ;مسار ملف النص البرمجي
- @OSArch ;نوع النظام من حيث المعالج
- @AppDataCommonDir ;مسار مجلد في النظام
- @DesktopWidth ;عرض شاشة العرض بالبكسل
يناير 1999
إضافةً إلى ذلك، تم إطلاق أوتوات الإصدار الأول v1.0 وكانت صيغته تشبه Microsoft ScriptIt, وتضمن خوارزميات للتحكم بالنوافذ, ومحاكاة لوحة المفاتيح مثل (Send, Run, RunWait, WinWait, WinWaitClose, WinWaitActive, WinHide, WinActivate, WinClose, WinRestore, Sleep، SetKeyDelay), وتمكن جوناثن من تخطي مشاكل Microsoft ScriptIt حيث كان أوتوات) 1.0 أصغر منه, ويمكن التعامل مع النوافذ الخاملة(غير النشطة), ويمكن عمل خطة عمل, ويعمل بشكل صحيح في حالة تغير فترات الانتظار, وكان أكثر توافقا مع الأنظمة. وكانت له عدة مشاكل كذلك.
مطورون
- المطورون الأساسيون النشطون هم:
- جوناثن بينيت (Jonathan Bennett) - يعرف بـ Jon
- جايسن بوجز (Jason Boggs) - يعرف بـ Valik
- جاين بول (Jean-Paul Mesnage) يعرف بـ jpm
$ans = $ans / $sData[0]
Return ($ans)
EndFunc ;==>_findAvg
جلب المتوسط الحسابي
- يحتوي الشيفرة التالي : دالة من المستعمل ونافذة وشرط.
- ;Finds the average of numbers specified by a user.
- ;The numbers must be delimited by commas.
- #NoTrayIcon
- #include
- #include
Else
- GUICtrlSetData($ansLabel, _findAvg(GUICtrlRead($textbox)))
- EndIf
- EndIf
حدوده
من جانب آخر، لا يمكن لأوتوات العمل بالبرمجة المتزامنة, أو غير المتزامنة, أو المتوازية; مما يجعل برمجة بعض التطبيقات مثل تطبيقات الاتصالات صعبة إذا لم تكن مستحيلة.
وفي السياق ذاته، في بعض الأحيان يتم كشف ملفات أوتوات التنفيذية على أنها مضرة, أو فيروسات, ويسمى كشف خاطئ(false positive)؛ ذلك أنه تطبيق استخراج ذاتي.
أوتوات والبرمجة كائنية التوجه(OOP)
علاوةً على ذلك، لا يمكن لأوتوات العمل مع البرمجة كائنية التوجه (Object-Orientation Programming), ولكن ظهرت مكتبة تدعى AutoItObject يمكن العمل من خلالها.
كذلك، وقد سبب هذا مشكلة كبيرة قرابة 17 أكتوبر 2006 حيث كانت أغلب برامج مكافحة الفيروسات تكشف على أنها فيروسات مما سبب أزمة ثقة كبيرة بالبرنامج وقد عانت بعض المنتديات العربية المختصة بالصيانة بسبب هذه المشكلة حيث كان كثير من الأدوات مبرمجة بالأوتوات, وسببت مشكلة كبيرة, مما استدعى الفريق لمراسلة شركات الحماية وتدارك المسألة.
العمليات
ومن ناحية أخرى، يحتوى أوتوات العمليات الحسابية والمنطقية, فمثلا العمليات الحسابية الجمع والطرح والضرب والقسمة وغيرها، وعمليات المقارنة مثل أكبر, وأصغر, وأكبر أو أصغر, والعمليات المنطقية مثل (و) و(أو) و(نفي)
رخصته
في هذا الإطار، يرخص أوتوات تحت رخصة ترخيص المستعمل النهائي End-user license agreement تختصر إلى (EULA)وهو مجاني بكامل أدواته وموارده, والأغلبية الساحقة من مكتباته.
;---------------------------------->
- $sData = StringSplit($nums, ",")
- $ans = 0
- For $i = 1 To $sData[0]
- $ans += $sData[$i]
- Next
أكتوبر 1998
من جهة ثانية، Microsoft ScriptIt عمل بشكل جيد, ولكن واجهته مشاكل حيث كان غير متوافق مع بعض أنظمة التشغيل, وسبب مشكلة مع بعض البرامج.
ثم بعد فترة في نفس السنة بدأ استخدام لغة C لمحاكاة الضغط.
من جانب آخر، كان جوناثن(Jonathan Bennett) صانع أوتوات يعمل لصالح شركة بخصوص تثبيت برامج بشكل صامت, فبحث عن طريقة لضغط الأزرار, وحينها استعمل Microsoft ScriptIt الذي كان يسمح بضغط الأزرار بطريقة صامتة.
;Clean up input format----------------->
$chk = StringRight($nums, 5)
If $chk = "," Then $nums = StringTrimRight($nums, 1)
فبراير 2004
كذلك، بعد أكثر من 100 إصدار بيتا من البرنامج, تم إصدار أوتوات 3.0.100 أخيرا.
سبتمبر - مايو 1999
تم إطلاق عدة إصدارات, وازدادت وظائف أوتوات بشكل هائل.
#region---------------GUI-----------------------
كذلك، $label = GUICtrlCreateLabel("Enter the numbers to be averaged separated by commas", 19, 0)
$form = GUICreate("Average Finder", 300, 100)
- $textbox = GUICtrlCreateInput("", 20, 20, 220)
- $label1 = GUICtrlCreateLabel("=", 245, 20, 30, 20)
- $ansLabel = GUICtrlCreateLabel("", 255, 20, 50, 20)
- $button = GUICtrlCreateButton("Find Average", 100, 40)
- GUISetState(@SW_SHOW)
- #endregion---------------END GUI-----------------------
- While 1
- $msg = GUIGetMsg
- If $msg = $GUI_EVENT_CLOSE Then Exit
- If $msg = $button Then
استخداماته
في هذا الإطار، وقد استعمل بعد تطورها في الإصدار الثالث لإنتاج برامج كبيرة بالنسبة لما ينتج في النسخ السابقة.
علاوةً على ذلك، يستعمل أوتوات بشكل واسع في أتمتة الأعمال, وفي أدوات الصيانة.
WEnd
- Func _findAvg($nums)
- Local $sData
- Local $ans
الشرط
- يمكن الشرط عن طريق ثلاث عمليات :
- If بأنواعها.
- Switch
- Select
التركيب النحوي
من جانب آخر، يعتمد أوتوات صيغة بسيطة نسبيا, فمثلا لا يوجد خاصية نوع المتغير عند تعريفه, أغلب الأوامر لا تحتوي الكثير من الإشارات, وهي قريبة من اللغة البشرية, ونهاية السطر تكون بالنزول وليسب بالفاصلة المنقوطة كما في أغلب اللغات.
ديفيد نوتال (David Nuttall) يعرف بـ Nutster
ويوجد غيرهم ساهموا في أوتوات.
مارس 2003
إطلاق أول نسخة منشورة من أوتوات 3 بيتا.
أغسطس 1999
تم إطلاق أوتوات 2, والذي كان أول إصدار يتضمن AutoItX.
📝 هل في هذه المقالة خطأ؟
إذا وجدت معلومة تحتاج تصحيحاً أو إضافة، أو أردت حذف المقالة، أرسل لنا طلباً وسنراجعه.
ما رأيك في هذه المقالة؟