هل هناك طريقة للتحقق لمعرفة ما إذا كان المستخدم خاملاً حاليًا؟
-
09-06-2019 - |
سؤال
توجد بعض الوثائق على الإنترنت توضح أن 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 لأنها سهلة التنفيذ في التطبيق الذي أعمل عليه.