الخطوات والبرنامج النصي وAutoHotkey
يمكن كتابة ما يفعله الإجراء بثلاث طرق. يختار مكتوب بصيغة، في البطاقة ما يفعله في صفحة الإجراءات، الطريقة التي تعمل.
| الصيغة | ما هي | اخترها عندما |
|---|---|---|
| خطوات | قائمة من الخطوات تختارها وتملؤها، صف لكل خطوة. لا تعليمات برمجية لكتابتها. | تريد بناء الإجراء دون كتابة تعليمات برمجية. تناسب معظم الإجراءات: إرسال مفاتيح، أو كتابة نص، أو نقل نوافذ أو إغلاقها، أو الانتظار، أو طرح سؤال. |
| برنامج نصي | لغة البرامج النصية الخاصة بـ Input.Observer، تُكتب في محرر تعليمات برمجية. | تحتاج إلى عمليات حسابية، أو بناء نص من أجزاء، أو حلقات تعدّ بمتغير، أو أي شيء لا تستطيع الخطوات التعبير عنه. |
| AutoHotkey | برنامج نصي لـ AutoHotkey v2، يشغّله AutoHotkey نفسه. | لديك بالفعل تعليمات برمجية لـ AutoHotkey، أو تحتاج إلى شيء لا يفعله إلا AutoHotkey. |
تعمل الخطوات والبرنامج النصي داخل Input.Observer وتستدعيان الدوال المضمَّنة نفسها: الخطوات طريقة مرئية لكتابة ما سيكتبه البرنامج النصي. راجع الخطوات ومرجع لغة البرامج النصية.
تحتفظ كل صيغة بمحتواها الخاص
يحتفظ الإجراء بمتن للخطوات ومتن للبرنامج النصي ومتن لـ AutoHotkey جنبًا إلى جنب. يغيّر تبديل مكتوب بصيغة ① المتن الذي يعمل. ولا يحذف المتون الأخرى أبدًا، لذا يمكنك التبديل مرة أخرى.
إذا كانت الصيغة التي تحددها فارغة بينما في صيغة أخرى محتوى، يذكر إشعار أسفل المبدِّل أن تشغيل الإجراء لا يفعل شيئًا، ويعرض زرًا لاستخدام الصيغة التي فيها محتوى.
التبديل من الخطوات إلى البرنامج النصي
عندما تبدّل من خطوات إلى برنامج نصي وفي الإجراء خطوات ومتن البرنامج النصي فارغ، يعرض Input.Observer ترجمة الخطوات: هل تريد تحويل الخطوات إلى برنامج نصي؟ اختر تحويل لوضع الترجمة في محرر البرامج النصية.
- تبقى الخطوات كما هي. ويعرضها التبديل مرة أخرى إلى خطوات دون تغيير.
- لا يتحول شيء في الاتجاه المعاكس. لا يمكن تحويل برنامج نصي إلى خطوات.
- الخطوات التي تستخدم التكرار ما دام… أو التكرار حتى… أو الخروج من الحلقة أو إيقاف الخطوات لا تُعرض ترجمتها، لأنه ليس في البرنامج النصي عبارات مقابلة. ولا يزال بإمكانك التبديل؛ لكن متن البرنامج النصي يبدأ فارغًا.
- لا يُحوَّل أبدًا إلى AutoHotkey أو منه.
- عندما تكون الخطوات تسجيلًا من صفحة المسجِّل، يذكر مربع الحوار أيضًا أن البرنامج النصي يتجاهل سرعة إعادة التشغيل وتفاصيل مسار الماوس عند إعادة التشغيل: تعمل فترات انتظاره بالسرعة المسجَّلة وتُعاد كل حركة ماوس مسجَّلة (إعدادات المسجِّل).
تعرض من الخطوات إلى البرنامج النصي ما يصبح عليه كل نوع من الخطوات.
AutoHotkey
AutoHotkey برنامج منفصل يبدؤه Input.Observer عندما يعمل إجراء AutoHotkey. وهو غير مضمَّن؛ تثبّت AutoHotkey v2 بنفسك وتخبر Input.Observer بمكانه.
- ثبّت AutoHotkey v2.
- في صفحة عام، فعّل تمكين AutoHotkey واضبط الملف التنفيذي لـ AutoHotkey على ملف برنامجه، مثل
AutoHotkey64.exe. - يظهر الآن AutoHotkey تحت مكتوب بصيغة. طبّق تغييراتك لكي يستخدم المحرك الإعداد الجديد.
القواعد:
- لا يُعرض AutoHotkey تحت مكتوب بصيغة إلا ما دام تمكين AutoHotkey مفعّلًا، أو عندما يعمل الإجراء بالفعل كـ AutoHotkey. وإجراء AutoHotkey مع إيقاف AutoHotkey لا يفعل شيئًا، وتذكر الصفحة ذلك.
- استخدم إصدارًا عاديًا من AutoHotkey. الإصدارات التي في اسمها
_UIA، مثلAutoHotkey64_UIA.exe، لا يمكنها تشغيل البرامج النصية من Input.Observer. - عندما يكون AutoHotkey مفعّلًا لكن يتعذّر العثور على برنامجه عند البدء أو عند إعادة تحميل التكوين، يطلب منك Input.Observer استعراض الملف التنفيذي لـ AutoHotkey أو ترك الوضع كما هو.
- يبدأ كل تشغيل عملية AutoHotkey جديدة ببرنامجك النصي. ولا يمكنها استدعاء الدوال المضمَّنة في Input.Observer، وتعمل حتى تنتهي من تلقاء نفسها؛ وينهيها مفتاح اختصار إيقاف كل الإجراءات.
- قبل برنامجك النصي، يضبط Input.Observer متغيرات تصف المشغِّل، مثل
IO_ActionNameوIO_TriggerKindونافذة الإيماءة أو مفتاح الاختصار (متغيرات AutoHotkey). وتعرض قائمة المتغيرات المتاحة هنا في المحرر المتغيرات التي توفرها مشغِّلات الإجراء؛ انقر على أحدها لإدراجه. - ما يكتبه البرنامج النصي في مخرجاته القياسية يظهر في وحدة التحكم التشخيصية، بادئًا بـ
AHK:(وحدة التحكم التشخيصية).
يمكن لإجراء خطوات أو برنامج نصي أيضًا تشغيل جزء من تعليمات AutoHotkey البرمجية بالدالة المضمَّنة AutoHotkeyExecuteScript.
وينطبق الإعداد نفسه والملف التنفيذي نفسه.
متغيرات AutoHotkey
يبدأ كل تشغيل لـ AutoHotkey ببضعة أسطر يضيفها Input.Observer قبل برنامجك النصي، تضبط متغيرات IO_ مما شغّل الإجراء. وينطبق
هذا على الإجراء المكتوب كـ AutoHotkey وعلى التعليمات البرمجية المشغَّلة بـ AutoHotkeyExecuteScript، التي تحصل على متغيرات
الإجراء الذي استدعاها.
كل تشغيل يضبط هذه الثلاثة:
| المتغير | يحمل |
|---|---|
IO_ActionName | اسم الإجراء. بالنسبة إلى حدث عام، Global_Event_ متبوعًا باسم الحدث في ملف التكوين، مثل Global_Event_release أو Global_Event_foreground_changed. ويكون فارغًا عندما لا يشغّل شيء التشغيل، مثل برنامج نصي يُشغَّل من وحدة التحكم. |
IO_AppGroupName | اسم مجموعة التطبيقات التي وُجد فيها الإجراء، مثل Global. ويكون فارغًا للحدث العام. |
IO_TriggerKind | ما شغّل التشغيل: Gesture أو Hotkey أو TextExpansion أو MouseButton (حدث عام لزر ماوس أو تحرير زر الرسم) أو Wheel (حدث عام للعجلة) أو None. |
البقية تعتمد على المشغِّل، ولا تُضبط إلا متغيرات ذلك المشغِّل:
| المشغِّل | المتغير | يحمل |
|---|---|---|
| الإيماءة | IO_GestureWindow | النافذة التي بدأت الإيماءة فوقها |
IO_GestureButton | زر الرسم: left أو right أو middle أو x1 أو x2 | |
IO_GestureStartX، IO_GestureStartY | مكان بدء الضربة | |
IO_GestureEndX، IO_GestureEndY | مكان انتهائها | |
IO_GestureBoundsLeft، IO_GestureBoundsTop، IO_GestureBoundsRight، IO_GestureBoundsBottom | المستطيل المحيط بالضربة كلها | |
IO_GesturePoints | كل نقطة في الضربة بترتيب الرسم، كمصفوفة من مصفوفات [x, y] | |
| مفتاح الاختصار | IO_HotkeyWindow | النافذة الموجودة في المقدمة عند ضغط مفتاح الاختصار |
IO_HotkeyVkCode | رمز المفتاح الظاهري في Windows للمفتاح الأخير، مثل 75 لـ K | |
IO_HotkeyModifiers | مفاتيح التعديل في المجموعة، مجموعةً معًا: Ctrl 1، Shift 2، Alt 4، Win 8 (Ctrl+Alt هو 5) | |
| توسيع النص | IO_TextExpansionWindow | النافذة التي كتبت فيها |
IO_TextExpansionPattern | الاختصار الذي كتبته | |
| حدث زر الماوس | IO_MouseWindow | النافذة الواقعة تحت المؤشر |
IO_MouseButton | الزر: left أو right أو middle أو x1 أو x2 | |
IO_MouseX، IO_MouseY | مكان المؤشر | |
| حدث العجلة | IO_WheelWindow | النافذة الواقعة تحت المؤشر |
IO_WheelDelta | مقدار دوران العجلة، كما يبلغ عنه Windows: 120 لدرجة واحدة من عجلة عادية (ترسل العجلات ذات التمرير السلس ولوحات اللمس خطوات أصغر)، موجب بعيدًا عنك (أو إلى اليمين)، وسالب نحوك (أو إلى اليسار) | |
IO_WheelHorizontal | true للف العجلة جانبيًا، وfalse للف العادي | |
IO_WheelX، IO_WheelY | مكان المؤشر |
- النوافذ مقابض نوافذ، أرقام يقرؤها AutoHotkey كمعرّف نافذة:
"ahk_id " IO_GestureWindowيسمّي النافذة فيWinActivateوWinGetTitleودوال النوافذ الأخرى. - المواضع إحداثيات شاشة بالبكسل الفعلي، من الزاوية العلوية اليسرى للشاشة الرئيسية. اضبط
CoordMode "Mouse", "Screen"قبل استخدامها مع دوال الماوس في AutoHotkey، التي تعمل في غير ذلك بالنسبة إلى النافذة النشطة. - النص يصل تمامًا كما كان؛ وتُهرَّب نيابةً عنك علامات الاقتباس والعلامات المائلة العكسية وفواصل الأسطر في اسم إجراء أو مجموعة.
- المتغير الذي لا يوفره المشغِّل لا يُضبط على الإطلاق، ويوقف AutoHotkey البرنامج النصي عندما يقرأ متغيرًا غير مضبوط.
والإجراء الذي له عدة أنواع من المشغِّلات، أو المقتطف المستدعى من إجراءات مختلفة، يجب أن يفحص
IO_TriggerKindأولًا، أو يستخدمIsSet(IO_GestureWindow).
مثلًا، إجراء يعمل من إيماءة أو مفتاح اختصار، يحضر النافذة التي استُخدم عليها إلى المقدمة ويعرض عنوانها:
CoordMode "Mouse", "Screen"
win := IO_TriggerKind = "Gesture" ? IO_GestureWindow : IO_HotkeyWindow
WinActivate "ahk_id " win
MsgBox WinGetTitle("ahk_id " win), IO_ActionName
محركات البرامج النصية من المكونات الإضافية
يمكن لمكوّن إضافي أن يضيف محرك برامج نصية خاصًا به. عندئذٍ يظهر تحت مكتوب بصيغة باسم المكوّن الإضافي، ويذهب النص الذي تكتبه هناك إلى المكوّن الإضافي تمامًا كما كُتب؛ ولا يفحصه Input.Observer. وإذا لم يوفر أي مكوّن إضافي قيد التشغيل ذلك المحرك، تحذّر الصفحة من أن الإجراء يُتخطى عند تشغيله. راجع المكونات الإضافية.
في الوضع البسيط
لا يعرض الوضع البسيط مكتوب بصيغة إلا لإجراء له بالفعل برنامج نصي أو متن AutoHotkey. ولأي إجراء آخر تعرض البطاقة الخطوات مباشرةً. لكتابة إجراء جديد كبرنامج نصي، حوّل النافذة إلى الوضع المتقدم (نافذة التكوين).