أليس من المزعج للغاية ، على الأقل في Windows ، أن تظهر أي نافذة في أي مكان على الشاشة؟ هل هذه العشوائية اليومية تثير أعصابك ، وتفضل المزيد من التحكم في وضع النوافذ على الشاشة؟ حسنًا ، يمكنك الآن بفضل AutoHotKey.

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

كيفية إعداد مفتاح التشغيل السريع Window-Centering With AutoHotKey

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

ويندوز "مشكلة"

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

حل المشكلة

بصرف النظر عن إرسال ضغطات المفاتيح ونقرات الماوس إلى أي نافذة ، يمكن لـ AutoHotKey أيضًا معالجتها. لقد رأينا في الماضي كيف يمكنك ذلك

instagram viewer
استخدم AutoHotKey لتثبيت النوافذ "دائمًا في المقدمة" باستخدام اختصار لوحة المفاتيح. هذه المرة ، على الرغم من ذلك ، سنستفيد من قدرات معالجة النوافذ في AutoHotKey من أجل:

  1. "اقرأ" معرف النافذة النشطة.
  2. أيضا "اقرأ" أبعادها (العرض والارتفاع).
  3. "اقرأ" أبعاد الشاشة.
  4. اجمع بين أبعاد الشاشة والنافذة لحساب الإحداثيات المثلى لعرض النافذة المذكورة في مركز الشاشة.
  5. انقل النافذة إلى تلك الإحداثيات.

أخيرًا ، سنقوم بتعيين ما ورد أعلاه إلى اختصار. بهذه الطريقة ، يمكنك تسميتها "عند الطلب" بدلاً من تطبيقها الكل windows - والتي يمكن أن تتداخل مع التطبيقات والألعاب بملء الشاشة.

لاحظ أنه في هذا البرنامج التعليمي ، سوف نتعمق في AutoHotKey. إذا لم تكن معتادًا على ذلك وتريد معرفة المزيد مسبقًا ، فتحقق من دليل AutoHotKey السريع للمبتدئين.

أولاً ، إعداد HotKey

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

ابدأ بتنزيل برنامج التثبيت من موقع AutoHotKey الرسمي. انتقل إلى الإصدار "الحالي" بدلاً من الإصدار التجريبي v2 أو الإصدار 1.0 المهمل. ثم قم بتثبيته على جهاز الكمبيوتر الخاص بك.

قم بتشغيل File Explorer (أسرع طريقة هي باستخدام مجموعة مفاتيح Windows Key + E) وانتقل إلى المسار حيث تريد إنشاء البرنامج النصي الخاص بك. مع تثبيت AutoHotKey ، ستظهر بعض الخيارات الجديدة في قائمة النقر بزر الماوس الأيمن. لذلك ، انقر بزر الماوس الأيمن فوق المساحة الفارغة لنافذة File Explorer واختر جديد> برنامج نصي AutoHotKey.

قم بتسمية ملف البرنامج النصي الخاص بك ، ثم انقر بزر الماوس الأيمن فوقه و تعديل هو - هي. إذا كنت لا تستخدم تطبيق تحرير نصوص سهل الاستخدام ، مثل Visual Studio Code أو Notepad ++ ، فاستخدم Windows Notepad. تجنب برامج التحرير مثل Wordpad ، والتي يمكن أن تضيف بناء جملة عديم الفائدة (لهذا الغرض) إلى "شفرتك".

عندما تكون في المحرر الذي تختاره ، سترى أن البرنامج النصي AutoHotKey الخاص بك يحتوي بالفعل على بعض الأسطر التي تم ملؤها مسبقًا في الأعلى. إنهم موجودون لأسباب تتعلق بالاستقرار والتوافق. إنها قابلة للتعديل ، لكن اتركها كما هي في هذا البرنامج التعليمي.

"انقل" سطرين أو ثلاثة أسفلهم وأدخل الاختصار الذي سيبدأ تشغيل وظيفتك. يمكنك إنشاء مجموعة مفاتيح باستخدام "+" لـ Shift ، و "^" لـ CTRL ، و "!" لـ Alt ، و "#" لمفتاح Windows ، بالإضافة إلى أي مفتاح "عادي" من لوحة المفاتيح (أحرف وأرقام).

على سبيل المثال ، لجعل مجموعة CTRL + Y تقوم بتشغيل البرنامج النصي الخاص بك ، استخدم:

^ ذ ::

الحرف المزدوج ":" يشبه القول ، "مرحبًا ، AutoHotKey ، يرجى تعيين السلسلة أو مجموعة المفاتيح الموجودة على اليسار لكل شيء على اليمين".

"انقل" سطرين أو ثلاثة أسفل ذلك بالضغط على Enter ، واكتب "عودة" ، والتي ستحدد نهاية الوظيفة المعينة. يجب أن تبدو النتيجة الكاملة كما يلي:

^ ذ ::
; هذه هو تعليق.
إرجاع

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

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

احصل على تفاصيل النافذة النشطة

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

WinGetTitle ، ActiveWindowTitle ، A
عرض WinGetPos ، الارتفاع ،٪ ActiveWindowTitle٪

استبدل سطر التعليق الذي أضفناه إلى البرنامج النصي في القسم السابق بالسطرين أعلاه. النتائج؟

  • يأخذ السطر الأول عنوان النافذة النشطة.
  • يقرأ السطر الثاني عرضه وارتفاعه ويرسمهما إلى الكلمتين / المتغيرين "العرض" و "الارتفاع" ، والتي سنستخدمها بعد ذلك في حساباتنا.

حصلنا على تفاصيل النافذة النشطة ، لكننا نحتاج أيضًا إلى أبعاد المنطقة المرئية للشاشة لتحقيق هدفنا. لحسن الحظ ، فإن اكتشاف هؤلاء أسهل.

ماذا عن منطقة المراقبة الأولية؟

لا نحتاج إلى أوامر إضافية للعثور على عرض الشاشة الأساسية وارتفاعها. يأتي AutoHotKey مع متغيرين محددين مسبقًا يحتويان بالفعل على تلك المعلومات بالنسبة لنا: "A_ScreenWidth" و "A_ScreenHeight".

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

حان الوقت لحساب المركز المستهدف

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

لذلك ، دعنا نذهب إلى "TargetX" باعتباره المتغير الذي سيحتفظ بالإحداثيات الأفقية و "TargetY" مثل واحد مع الإحداثيات الرأسية حيث يجب علينا تحريك النافذة لإظهارها في وسط شاشة.

الهدف X: = (A_ScreenWidth /2)-(عرض/2); هنا نحسب الأفقي نافذة او شباك هدف...
الهدف: = (A_ScreenHeight / 2) - (الارتفاع / 2) ؛... وهنا العمودي.

دعونا نفك رموز هذه الأسطر بلغة إنجليزية بسيطة:

  • "TargetX" و "TargetY" هما المتغيرين.
  • يُعلم ": =" AutoHotKey أن المتغيرات يجب أن تكون مساوية لنتائج العمليات الحسابية على اليمين ، وأنه يجب التعامل مع هذه النتائج كأرقام.
  • يقسم "(A_ScreenWidth / 2)" عرض الشاشة بالكامل على اثنين.
  • "(Width / 2)" يفعل الشيء نفسه بالنسبة لعرض النافذة النشطة.

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

الآن لإعادة النافذة

مجهزين بالمعرفة القوية المكتسبة من الأوامر الصوفية التي رأيناها أعلاه ، يمكننا الآن صياغة تعويذنا السحري الذي سيكمل طقوس الانتقال الآني للنافذة. أو ، بلغة إنجليزية بسيطة ، استخدم أمر "WinMove" الخاص بـ AutoHotKey لتحريك النوافذ حول الشاشة.

تتوقع WinMove منا "إطعامها" بثلاث أجزاء على الأقل من المعلومات للقيام بعملها: عنوان النافذة المستهدفة والإحداثيات التي يجب نقلها إليها. نظرًا لأننا قمنا بالفعل بتعيين هذه الأجزاء من المعلومات إلى متغيرات ، فإن الأمر بسيط مثل:

WinMove ،٪ ActiveWindowTitle٪ ،،٪ TargetX٪ ،٪ TargetY٪

في ما سبق:

  • "WinMove" هو أمر AutoHotKey الذي يحرك نافذة حولها.
  • "٪ ActiveWindowTitle٪" هو المتغير حيث يتم تعيين عنوان الإطار النشط.
  • "٪ TargetX٪" و "٪ TargetY٪" هما الإحداثيان الأفقي والعمودي حيث يتم نقل النافذة.

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

النص النهائي

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

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

يجب أن يبدو ملف البرنامج النصي النهائي ، كما هو مفتوح في محرر نصي ، على النحو التالي:

#NoEnv ؛ موصى به للأداء والتوافق مع إصدارات AutoHotkey المستقبلية.
; # حذر ؛ قم بتمكين التحذيرات للمساعدة في اكتشاف الأخطاء الشائعة.
إدخال SendMode ؛ مُستَحسَن لالجديد البرامج النصية نظرًا لسرعتها الفائقة وموثوقيتها.
SetWorkingDir٪ A_ScriptDir٪ ، يضمن دليل بدء ثابت.
^ ذ ::
WinGetTitle ، ActiveWindowTitle ، A ؛ احصل على النافذة النشطة'عنوان s لـ "استهداف" انها / العمل على ذلك.
عرض WinGetPos ، الارتفاع ،٪ ActiveWindowTitle٪ ؛ احصل على نشاط نافذة او شباكمستخدمة ل حساباتنا.
الهدف X: = (A_ScreenWidth /2)-(عرض/2); احسب الهدف الأفقي حيث سنقوم بتحريك نافذة او شباك.
الهدف: = (A_ScreenHeight /2)-(ارتفاع/2); احسب الوضع الرأسي من ال نافذة او شباك.

WinMove،٪ ActiveWindowTitle٪ ،،٪ TargetX٪،٪ TargetY٪؛ حرك ال نافذة او شباك للإحداثيات المحسوبة.

إرجاع

لاحظ أنه يمكنك نسخ البرنامج النصي أعلاه ولصقه في Notepad أو أي محرر نصوص مشابه وحفظه بامتداد AHK. ثم ، "قم بتشغيله" ، مع تثبيت AutoHotKey ، لتوسيط أي نافذة عندما تضغط على CTRL + Y. إذا لم يعجبك هذا الاختصار ، فقم بتعديل سطر "^ y ::" إلى مجموعة مفاتيح مختلفة. علي سبيل المثال، ! + ج :: سيعين الوظيفة على مجموعة المفاتيح Shift + Alt + C.

مكافأة المسار

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

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

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

#NoEnv ؛ موصى به للأداء والتوافق مع إصدارات AutoHotkey المستقبلية.
; # حذر ؛ قم بتمكين التحذيرات للمساعدة في اكتشاف الأخطاء الشائعة.
إدخال SendMode ؛ مُستَحسَن لالجديد البرامج النصية نظرًا لسرعتها الفائقة وموثوقيتها.
SetWorkingDir٪ A_ScriptDir٪ ، يضمن دليل بدء ثابت.
PositionToggle = 1 ؛ يستخدم أ رقممثل تبديل ل العلامات تشغيل التي ترصد نافذة او شباك يجب أن تظهر.
^ ذ ::
WinGetTitle ، ActiveWindowTitle ، A
عرض WinGetPos ، الارتفاع ،٪ ActiveWindowTitle٪

إذا كان PositionToggle = 1 ؛ الشيك حالة التبديل و "فعل ما بين القوسين المتعرجين "إذا كان كذلك جلسل1ل مراقبنا الأساسي.
{
TargetX: = (A_ScreenWidth / 2) - (العرض / 2)
الهدف: = (A_ScreenHeight / 2) - (الارتفاع / 2)
PositionToggle = 2 ؛ "نقرة" التبديل بحيث إذا أعدنا استخدام مفتاح التشغيل السريع ، فستنتقل نافذتنا النشطة إلى الشاشة الثانية.
}
Else If PositionToggle = 2 ؛ هل استخدمنا مفتاح الاختصار من قبل ، "نفض الغبار" رقم التبديل إلى الشاشة الثانية؟ ثم يجب أن يفعل النص بدلاً من ذلك ما'بين الأقواس المتعرجة التالية بدلاً من تلك الموجودة أعلاه.
{
SysGet ، Mon2 ، مراقب ، 2 ؛ احصل على الشاشة الثانية'تفاصيل
Mon2Width: = Mon2Right - Mon2Left ؛ احسب الشاشة الثانية'العرض الفعلي.
Mon2Height: = Mon2Bottom - Mon2Top ؛ احسب الشاشة الثانية'الارتفاع الفعلي.

TargetX: = (Mon2Width / 2) - (العرض / 2) + A_ScreenWidth ؛ احسب مكان تحريك النافذة. لاحظ أننا نضيف أيضًا جهاز العرض الأساسي'عرض s منذ AutoHotKey يمكن'لتحريك النوافذ على الشاشات الفردية ولكن عبرها مجتمعة "السطحية".
الهدف: = (Mon2Height / 2) - (الارتفاع / 2) + Mon2Top ؛ احسب الهدف الرأسي الأمثل لتحريك النافذة على الشاشة الثانية. كما هو مذكور أعلاه ، الشاشة الثانية'تم الكشف عن التفاصيل العمودية فيما يتعلق بجهاز العرض الأساسي. وبالتالي ، علينا أن نكون مبدعين للحصول على الهدف الأمثل من خلال الاعتراف بكيفية الشاشة الثانية'الصورة العليا ليست'ر يساوي 0 (مثل الأساسي'س).

PositionToggle = 1; نفض الغبار إلى الخلف حتى ذلك لو نحن نعيد استخدام مفتاح الاختصار ، نافذة او شباك سيعود إلى جهاز العرض الأساسي.
}

WinMove،٪ ActiveWindowTitle٪ ،،٪ TargetX٪،٪ TargetY٪؛ الفعل الفعلي ، تحريك النشط نافذة او شباك لإحداثياتنا المحسوبة.

إرجاع

توسيط النافذة بالمفتاح ، الطريق السهل

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

اكتشف أين تضيع وقتك على Windows باستخدام AutoHotKey

اقرأ التالي

شاركسقسقةشاركبريد الالكتروني

مواضيع ذات صلة

  • شبابيك
  • نظام التشغيل Windows 10
  • نظام التشغيل Windows 11
  • AutoHotkey
  • تخصيص Windows

نبذة عن الكاتب

أوديسيز كرافالوس (31 مقالة منشورة)

بدأت الحياة الحقيقية لـ OK في حوالي الساعة 10 ، عندما حصل على جهاز الكمبيوتر الأول - Commodore 128. منذ ذلك الحين ، كان يعمل على إذابة keycaps عن طريق الكتابة على مدار الساعة طوال أيام الأسبوع ، محاولًا نشر The Word Of Tech لأي شخص مهتم بما يكفي للاستماع. أو بالأحرى اقرأ.

المزيد من Odysseas Kourafalos

اشترك في نشرتنا الإخبارية

انضم إلى النشرة الإخبارية لدينا للحصول على نصائح تقنية ومراجعات وكتب إلكترونية مجانية وصفقات حصرية!

انقر هنا للاشتراك