أوتوات
عودة للموسوعةنوع |
بيئة لغة برمجة
|
---|---|
نظام التشغيل |
مايكروسوفت ويندوز
|
مسقط الويب |
www.autoitscript.com
|
المطور الأصلي |
جوناثان بينيت |
---|---|
المطورون |
جوناثان بينيت والكثير من المطورين |
لغة البرمجة |
سي++
|
الإصدار الأول |
1999 |
حالة التطوير |
نشط |
الإصدار الأخير |
v3.3.14.2 |
إصدار تجريبي |
3.3.7.3 |
الرخصة |
ترخيص المستخدم النهائي - مجاني |
أوتوات (بالإنجليزية: AutoIt) (تنطق بالإنجليزية aw-tow-it) هي لغة برمجة نصية مجانية تشبه لغة بيسك صممت لأتمتة نوافذ الويندوز واستخدامات عامة أخرى، تدمج اللغة بين محاكاة لوحة المفاتيح، وحركات المؤشر، ونقراته، والتحكم بالنوافذ لتؤدي مهام الأتمتة بطرق غير ممكنة بلغات أخرى مثل في بي سكربت وSendKeys. أوتوات أيضا لا تعتمد على غيرها فيما عدا نظام التشغيل.
في البداية كانت أوتوات بسيطة الوظائف، ولكنها تطورت بشكل كبير خصوصا في الإصدار الثالث V3 حيث أضيفت لها خلال هذا الإصدار الكثير من الخوارميات(الدوال)، وتطورت فيها خاصية قابلات المستخدم الرسومية، وتم تحسين محررها وإضافة أدوات كثيرة إليه. وهي الآن تملك بيئة تطوير متكاملة معتمدة محررها (سايت) المعتمد على سينتيلا (مخطة برمجية).
بعد كتابة الأوامر النصية(Script) يتم تحويله إلى صيغة تطبيقية تعمل على ويندوز ويمكن ضغطها باستخدام يوبي إكس ليصغر حجمها ويمكن إضافة إليها الكثير من الوظائف عن طريق مخطات أوتوات تسمى UDF وهي اختصار لـUser Defined Functions.
نبذة تاريخية
أكتوبر 1998
كان جوناثن(Jonathan Bennett) صانع أوتوات يعمل لصالح شركة بخصوص تثبيت برامج بشكل صامت, فبحث عن طريقة لضغط الأزرار, وحينها استخدم Microsoft ScriptIt الذي كان يسمح بضغط الأزرار بطريقة صامتة.
Microsoft ScriptIt عمل بشكل جيد, ولكن قابلته مشاكل حيث كان غير متوافق مع بعض أنظمة التشغيل, وسبب معضلة مع بعض البرامج.
ثم بعد فترة في نفس السنة بدأ استخدام لغة C لمحاكاة الضغط.
يناير 1999
تم إطلاق أوتوات الإصدار الأول v1.0 وكانت صيغته تشبه Microsoft ScriptIt, وتضمن خوارزميات للتحكم بالنوافذ, ومحاكاة لوحة المفاتيح مثل (Send, Run, RunWait, WinWait, WinWaitClose, WinWaitActive, WinHide, WinActivate, WinClose, WinRestore, Sleep، SetKeyDelay), وتمكن جوناثن من تخطي مشاكل Microsoft ScriptIt حيث كان أوتوات) 1.0 أصغر منه, ويمكن التعامل مع النوافذ الخاملة(غير النشطة), ويمكن عمل خطة عمل, ويعمل بشكل سليم في حالة تغير فترات الانتظار, وكان أكثر توافقا مع الأنظمة. وكانت له عدة مشاكل أيضا.
يناير - ابريل 1999
تم إصدار عدة إصدارات أخرى وصلت إلى 1.8 مع ميزات مهمة جديدة.
أغسطس 1999
تم إطلاق أوتوات 2, والذي كان أول إصدار يتضمن AutoItX.
سبتمبر 1999
تم إطلاق أوتوات 2.1, والذي كان أول إصدار يمكن تحويل النص البرمجي(script) إلى ملف تطبيقي يعمل على ويندوز(Windows).
سبتمبر - مايو1999
تم إطلاق عدة إصدارات, وازدادت وظائف أوتوات بشكل هائل.
مايو2001
كانت الشيفرة المصدرية(Source Code) لأوتوات في فوضى تامة, تم كتابة الشيفرة المصدرية بالكامل من حديث في C++.
يناير 2002
أوتوات 2.62, تتضمن Exe2Aut (تفكيك الصيغة التطبيقية إلى الشيفرة المصدرية), وتمت إضافة AutoItDLL.
ديسمبر 2002
أوتوات 2.64 كان آخر إصدار من أوتوات 2.
يناير 2003
تطورأوتوات في فترة 2001-2003 تطورا بسيطا جدا, لاحظ جوناثن (Jonathan Bennett) حتى الشيفرة المصدرية باتت في فوضى عارمة كالسابق, كانت صيغة كتابة أوتوات 2 سيئة جدا.
بدأ جوناثن يطور بيئة أوتوات 3, وقرر تغيير صيغة كتابة أوتوات.
مارس 2003
إطلاق أول نسخة منشورة من أوتوات ثلاثة بيتا.
فبراير 2004
بعد أكثر من 100 إصدار بيتا من البرنامج, تم إصدار أوتوات 3.0.100 أخيرا.
مطورون
المطورون الأساسيون النشطون هم:
- جوناثن بينيت (Jonathan Bennett) - يعهد بـ Jon
- جايسن بوجز (Jason Boggs) - يعهد بـ Valik
- جاين بول (Jean-Paul Mesnage) يعهد بـ jpm
- ديفيد نوتال (David Nuttall) يعهد بـ Nutster
ويوجد غيرهم ساهموا في أوتوات.
مميزات
- مجاني بالكامل.
- صغير الحجم نسبيا فحجمه بالكامل مع المحرر الاعتيادي تقريباثمانية م.ب
- ذات صيغة برمجة سهلة الفهم, من عائلة لغات البيسك(Basic).
- يوجد الكثير من الإضافات لها
- منتدى دعم نشط على الإنترنت (إنجليزي)
- تدعم بروتكولات TCP, وUDP.
- تدعم كائنات COM وهي اختصار لـ(Component Object Model) دعماَ جيداَ.
- تتعامل مع مخطات الربط الديناميكي (Win32 DLL).
- المجمع يضم دمج ملفات مع البرنامج لتستخرج عند تشغيلها.
- إنشاء القابلات الرسومية (GUI) بكثير من عناصر التحكم الخاصة بها.
- إنشاء الرسائل وصناديق الإدخال.
- التعامل مع بعض أنواع الصوتيات كالتشغيل, والتوقيف بدون إضافات.
- التحكم بالنوافذ, والعمليات في الذاكرة.
- محاكاة كاملة لجميع أفعال المستخدم تحريك الفأرة, والكتابة, وغيرها.
- نتيجة التجميع ملف تطبيقي يعمل بذاته على نظام ويندوز(Windows).
- يدعم ترميز يونيكود (Unicode) من الإصدار 3.2.4.0.
- يدعم نظام 64 بت (64 bit) من الإصدار 3.2.10.0.
- دعم تام للتعابير النمطية (Regular expression).
- متوافق مع الأنظمة Windows 2000 / XP / 2003 / Vista / 2008 / Windowsسبعة / 2008 R2.
- يعمل مع User Account Control الخاصة بويندوز فيستا (Windows Vista).
رخصته
يرخص أوتوات تحت رخصة ترخيص المستخدم النهائي End-user license agreement تختصر إلى (EULA)وهومجاني بكامل أدواته وموارده, والأغلبية الساحقة من مخطاته.
استخداماته
يستخدم أوتوات بشكل واسع في أتمتة الأعمال, وفي أدوات الصيانة.
وقد استخدم بعد تطورها في الإصدار الثالث لإنتاج برامج كبيرة بالنسبة لما ينتج في النسخ السابقة.
حدوده
- لا يمكن لأوتوات العمل بالبرمجة المتزامنة, أوغير المتزامنة, أوالمتوازية; مما يجعل برمجة بعض التطبيقات مثل تطبيقات الاتصالات صعبة إذا لم تكن محالة.
- في بعض الأحيان يتم كشف ملفات أوتوات التطبيقية على أنها مضرة, أوفيروسات, ويسمى كشف خاطئ(false positive)؛ ذلك أنه تطبيق استخراج ذاتي.
- وقد سبب هذا معضلة كبيرة حوالي 17 أكتوبر 2006 حيث كانت معظم برامج مكافحة الفيروسات تكشف على أنها فيروسات مما سبب أزمة ثقة كبيرة بالبرنامج وقد عانت بعض المنتديات العربية المختصة بالصيانة بسبب هذه المشكلة حيث كان كثير من الأدوات مبرمجة بالأوتوات, وسببت معضلة كبيرة, مما استدعى الفريق لمراسلة شركات الحماية وتدارك المسألة.
أوتوات والبرمجة كائنية التوجه(OOP)
لا يمكن لأوتوات العمل مع البرمجة كائنية التوجه (Object-Orientation Programming), ولكن ظهرت مخطة تدعى AutoItObject يمكن العمل من خلالها.
مرفقاته
تملك أوتوات عدة أدوات ومحررات, منها:
- محرر SciTE4Autoit : وهوالمحرر الرسمي لأوتوات, وهوتخصيص للمحرر سايت ليتناسب بشكل تام مع أوتوات.
- محرر jEdit أربعة AutoIt : وهونسخة معدلة من المحرر جي إيدت لتتناسب مع أوتوات
- برنامج AutoIt Debugger : منقح لأوتوات.
- عدة أدوات قياسية, منها :
- AutoIt Windows Info : تجلب معلومات النوافذ, وتعتبر أداة أساسية لأن مهمة أوتوات خي الأتمتة النوافذ في المقام الأول.
- AU3Record : أداة مرفقة مع سايت لتسجيل أفعال المستخدم لتكرارها في الشيفرة البرمجية.
- CodeWizard : أداة مرفقة مع سايت لتسهيل كتابة شيفرات الصناديق.
- FuncPopUp : أداة مرفقة مع سايت لتسهيل كتابة الدوال بحيث تظهرها في طرف النافذة.
- Obfuscator : أداة مرفقة مع سايت لجعل قراءة الشيفرة البرمجية صعبة جدا, وتستخدم لحماية مصادر البرامج في حالة عمل إعادة تفكيك .
- Tidy : أداة مرفقة مع سايت لترتيب الشيفرة البرمجية.
- Koda : اداة مرفقة مع سايت لانتاج أوامر انشاء النوافذ باستخدام قابلة سهلة الاستخدام.
الهجريب النحوي
يعتمد أوتوات صيغة بسيطة نسبيا, فمثلا لا يوجد خاصية نوع المتغير عند تعريفه, معظم الأوامر لا تحتوي الكثير من الإشارات, وهي قريبة من اللغة البشرية, ونهاية السطر تكون بالنزول وليسب بالفاصلة المنقوطة كما في أغلب اللغات.
أنواع البيانات
في أوتوات عدة أنواع من البيانات هي :
- النصوص String
- الأرقام Numbers
- قيم منطقية Booleans
- المؤشر Pointer وتسمى مقابض النوافذ بـ HWnd
- قيم ثنائية Binary
الدوال
الصيغة العامة للدوال هي :
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")
دوال المستخدم
يمكن للمستخدم عمل دوال خاصة به عن طريق Func وينتهي بـ EndFunc
مثال :
UserMsg("النص","العنوان")
Func UserMsg($Text,$Title)
$Text = '.:: ' & $Text & '::.'
MsgBox (64,$Title,$Text)
Return 1
EndFunc
المتغيرات
ليس من المهم تعريف المتغير قبل استخدامه,قد يكون تعريف المتغير بأحد الحدثات الثلاث : Local وGlobal وDim. ويسبق المتغير بعلامة الدولار $ للدالة على أنه متغير. ولا يجب تحديد نوع المتغير عند تعريفه
مثال :
Dim $Var1 = 125
Global $Var2 = 'Wikipedia'
$Var3 = 0xf0ed5a
المصفوفات
لا بد من تعريف المصفوفات بأحد الحدثات السابقة Local وGlobal وDim. وتعين الأبعاد باستخدام الأقواس [ ].
مثال :
Global $Array1[4] = [1,'String',True,0xf5d54a] ;مصفوفة من بعد واحد عدد العناصر 4
Global $Array2[4][3] ;مصفوفة من بعدين عدد العناصر 12 عنصر
الماكروMacro
وهي متغيرات يتم تعريفها تلقائيا, وهي للقراءة فقط. تبدأ بعلامة at @ للدلالة على أنها ماكرو.
مثال :
@ScriptDir ;مسار ملف النص البرمجي
@OSArch ;نوع النظام من حيث المعالج
@AppDataCommonDir ;مسار مجلد في النظام
@DesktopWidth ;عرض شاشة العرض بالبكسل
العمليات
يحتوى أوتوات العمليات الحسابية والمنطقية, فمثلا العمليات الحسابية الجمع والطرح والضرب والقسمة وغيرها، وعمليات المقارنة مثل أكبر, وأصغر, وأكبر أوأصغر, والعمليات المنطقية مثل (و) و(أو) و(نفي)
الشرط
يمكن الشرط عن طريق ثلاث عمليات :
- If بأنواعها.
- Switch
- Select
الحلقات
هناك الحلقات الافتراضية وهي :
- حلقة For...Next
- حلقة While...WEnd
- حلقة Do...Until
- حلقة For...In...Next
الملاحظات أوالتعليقات
هناك يمكن عمل ملاحظة لسطر واحد عن طريق الفاصلة المنقوطة ;، ويمكن عمل ملاحظات لأسطر عديدة عبر وضعها بين #cs و#ce
مثال :
$V = 1 ;ملاحظة لسطر واحد
#cs
ملاحظة
$V = 1
ملاحظة
ملاحظة
#ce
القابلة الرسومية GUI
يمكن عمل قابلة من خلال السابق فالتعامل مع القابلات يتم عن طريق دوال عادية تبدأ بحدثة GUI. بالإضافة إلى الحلقات.
المخطات UDF
يحتوي أوتوات الكثير من المخطات, منها ما قياسي موجود افتراضيا ومنها ماهومن عمل المستخدم وهي كثيرة جدا, ومتوفرة في منتدى البرنامج.
يمكن تضمين المخطات عن طريق #Include.
حدود الأوامر
هناك حدود للأوامر بالإضافة إلى حدود ويندوز الافتراضية. وهي :
- النص البرمجي: أقصى عدد أسطر للنص البرمجي الواحد هو4,095
- النصوص : أقصى حجم للنص الواحد هو2147483647 خانة
- الأرقام : أقصى عدد يمكن تحته هو9223372036854775807
- القيم الثنائية : يمكن حتى يحتمل القيمة الثنائية الواحدة 2147483647 بايت
- المصفوفات :-
- يمكن عمل 64 بعد للمصفوفة كحد أقصى
- و16 مليون عنصر كحد أقصى
- المتغيرات : لا يمكن حتى يتخطى اسم المتغير 255 حرف.
- الدوال: أقصى عمق لنداء الدوال هو5100 مستوى, ولا يوجد حد لعدد الدوال.
- النوافذ : أقصى عدد لعناصر التحكم هو65532, ولا يوجد حد لعدد النوافذ
أمثلة
Hellow World!
; إظهار Hellow World! في صندوق رسالة.
MsgBox(0, "Title", "Hellow World!")
Exit
جلب المتوسط الحسابي
يحتوي الشيفرة التالي : دالة من المستخدم ونافذة وشرط.
;Finds the average of numbers specified by a user.
;The numbers must be delimited by commas.
#NoTrayIcon
#include <GUIConstantsEx.au3>
#include <Array.au3>
#region---------------GUI-----------------------
$form = GUICreate("Average Finder", 300, 100)
$label = GUICtrlCreateLabel("Enter the numbers to be averaged separated by commas", 19, 0)
$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
If _findAvg(GUICtrlRead($textbox)) = "malform1" Then
GUICtrlSetData($ansLabel,"Error")
Else
GUICtrlSetData($ansLabel, _findAvg(GUICtrlRead($textbox)))
EndIf
EndIf
WEnd
Func _findAvg($nums)
Local $sData
Local $ans
;Clean up input format----------------->
$chk = StringRight($nums, 5)
If $chk = "," Then $nums = StringTrimRight($nums, 1)
If StringInStr($nums, ",") < 1 Then
Return ("malform1")
EndIf
;---------------------------------->
$sData = StringSplit($nums, ",")
$ans = 0
For $i = 1 To $sData[0]
$ans += $sData[$i]
Next
$ans = $ans / $sData[0]
Return ($ans)
EndFunc ;==>_findAvg
المراجع
- معظم محتويات الصفحة من ملف مساعدة البرنامج للإصدار v3.3.6.1
- ^ صفحة تحميل البرنامج الرسمية http://www.AutoItscript.com/site/AutoIt/downloads/
- ^ الصفحة الرئيسية الرسمية http://www.AutoItscript.com/site/AutoIt/
- ^ انظر الموضوع في المنتدى http://www.AutoItscript.com/forum/topic/34658-are-my-AutoIt-exes-really-infected/
- ^ صفحة المخطة الرئيسية (إنجليزية) نسخة محفوظة 20 أبريل 2012 على مسقط واي باك مشين.
- ^ انظر الصفحة http://jedit4AutoIt.thorsten-willert.de/
- ^ انظر الصفحة الرسيمية لـ AutoIt Debugger على الرابط http://www.thefoolonthehill.net/drupal/AutoIt%20Debugger
- ^ انظر الصفحة الرسمية لـ Koda على http://koda.darkhost.ru/page.php?id=index
التصنيفات: برمجيات احتكارية, عائلة لغة بيسك, لغات برمجة نصية, قالب أرشيف الإنترنت بوصلات واي باك, صفحات بها بيانات ويكي بيانات, صفحات تستخدم خاصية P306, صفحات تستخدم خاصية P856, مقالات تحتوي نصا بالإنجليزية, صفحات بها وصلات إنترويكي, بوابة برمجيات حرة/مقالات متعلقة, بوابة برمجيات/مقالات متعلقة, بوابة برمجة الحاسوب/مقالات متعلقة, جميع المقالات التي تستخدم شريط بوابات, قالب تصنيف كومنز بوصلة كما في ويكي بيانات