تتبع أحداث النافذة على مستوى نظام التشغيل في Java

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

  •  03-07-2019
  •  | 
  •  

سؤال

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

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

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

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

المحلول

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

نصائح أخرى

مع من اللجوء إلى التعليمات البرمجية الأصلية وأنا لا أعتقد أن هذا لن يكون ممكنا.

وكنت قد ننظر لمكتبة نافذة الاختبار - يتم إجراء بعض من تلك لخلق واعتراض Win32 والأحداث المحلية

.

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

وأعتقد أن عليك أن تنظر في استخدام لغة أخرى.
وهناك لغات أخرى مثل C ++ على سبيل المثال التي predistinated لهذا النوع من المشاكل:)

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

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

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

إذا كنت تريد أن تفعل هذا من جاوة ولا تريد أن تكتب التعليمات البرمجية الأصلية الخاصة بك، يمكنك محاولة <لأ href = "http://www.eclipse.org/swt/" يختلط = "نوفولو noreferrer" > بسم الله الرحمن الرحيم . أشك في أن لديها طرق منصة الملحد من تحقيق ما تريد، ولكن يمكنك كزة حولها في الطبقات ويندوز محددة، وخاصة org.eclipse.swt.internal.win32.OS.

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

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