محاكاة حركة الماوس / فوق / بضغطة في تطبيق غير نشطة

StackOverflow https://stackoverflow.com/questions/806376

  •  03-07-2019
  •  | 
  •  

سؤال

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

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

هل هذا ممكن على الإطلاق؟ شكرا!

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

المحلول

هل يمكن القيام بما يلي:

1) الحصول على HWND من النافذة داخل الذي تريد محاكاة الأحداث. من أجل القيام بذلك يمكنك استخدام وظيفة FindWindow، والتي تأخذ معلمتين، واحدة كونها النافذة اسم الفئة (يمكنك استخدام NULL) والآخر اسم من النافذة (انظر الوثائق MSDN للحصول على تفاصيل)؛

2) إرسال رسالة إلى الإطار المطلوب باستخدام وظيفة SendMessage. المعلمات هي: السابق الحصول على مقبض الإطار (HWND)، ورسالة (والتي يمكن أن تكون على سبيل المثال WM_KEYDOWN، أو WM_MOUSEMOVE، WM_LBUTTONDOWN الخ)، وWPARAM الرسالة (التي في حالة WM_KEYDOWN هو رمز المفتاح الظاهري مفتاح ) وأخيرا LPARAM الرسالة (التي في حالة WM_KEYDOWN معقدة جدا ويجب عليك مراجعة MSDN للحصول على التفاصيل).

في رأيي هذا يكفي لما كنت تنوي القيام به.

نصائح أخرى

وكذلك إذا كنت على علم JAVA هل يمكن استخدام فئة الروبوتات.

<اقتباس فقرة>   

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

جافا الدرجة الروبوتات

وربما ثيريس شيء مزيف في صافي؟

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