سؤال

أود أن أكتب برنامجا قادر على "استخدام" البرامج الأخرى عن طريق التحكم في لوحة المفاتيح / لوحة المفاتيح والقدرة على "رؤية" ما هو على الشاشة.

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

لذلك ... أحتاج إلى:

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

كيف يمكنني أن أفعل ذلك في بيثون؟
هل يعمل في كل من لينكس والنوافذ؟ (قد يكون هذا رائعا حقا، لكنه ليس من الضروري)

هل كانت مفيدة؟

المحلول

لقد كان بعض الحظ مع مهام مماثلة باستخدام Pywinauto..

Pywinauto هي مجموعة من وحدات Python لأتمتة Microsoft Windows Gui. في أبسط ذلك، يسمح لك بإرسال إجراءات الماوس ولوحة المفاتيح إلى مربعات حوار وضوابط Windows.

كما أن لديها بعض الدعم لالتقاط صور من الحوار ومثل استخدام مكتبة التصوير الثعبان بيل.

نصائح أخرى

يمكنك استخدام watsup. تحت ويندوز.

AutoIT قادر تماما على القيام بكل ما ذكرته. عندما أرغب في القيام ببعض الأتمتة ولكن استخدام ميزات Python، أجد أنه من الأسهل استخدامه autoitx. وهو عنصر تحكم DLL / COM.

مأخوذ من هذه الإجابة ملكي:

import win32com.client
oAutoItX = win32com.client.Dispatch( "AutoItX3.Control" )

oAutoItX.Opt("WinTitleMatchMode", 2) #Match text anywhere in a window title

width = oAutoItX.WinGetClientSizeWidth("Firefox")
height = oAutoItX.WinGetClientSizeHeight("Firefox")

print width, height

إذا كنت مرتاحا مع Pascal، فإن لوحة المفاتيح / الماوس القوية القوية هي ندبة: http://freddy1990.com/index.php؟page=product&name=ar. يمكن أن تفعل OCR، العثور على النقطات النقطية، والعثور على اللون، وما إلى ذلك. غالبا ما يستخدم لأي أتمتة الألعاب عبر الإنترنت، ولكن يمكن استخدامه لأي موقف تريد محاكاة إنسان قراءة الشاشة وإعطاء المدخلات.

لقد استخدمت النوافذ (فقط) إدخال API. لكتابة تطبيق للتحكم عن بعد VNC في الماضي. يتيح لك إدخال لوحة المفاتيح والماوس المزيف بشكل جيد على مستوى النظام (أي ليس فقط نشر الأحداث على تطبيق واحد).

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

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top