هل هناك طريقة للتحقق لمعرفة ما إذا كان المستخدم خاملاً حاليًا؟

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

سؤال

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

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

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

المحلول

ماذا عن Win32 لاستينبوتينفو وظيفة؟

using System.Runtime.InteropServices;

[DllImport("User32.dll")] 
static extern bool GetLastInputInfo(ref LASTINPUTINFO plii);

struct LASTINPUTINFO 
{
    public uint cbSize;
    public uint dwTime;
}

نصائح أخرى

كود مُدار

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

رمز غير مُدار

يرى اكتشاف وقت الخمول باستخدام خطافات الماوس ولوحة المفاتيح

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

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