سؤال

وصباح الخير،

وأنا مطور تطبيق PDA متوسطة الحجم التي سيتم استخدامها في الشوارع. سوف تحتوي على PDA بعض البيانات الحساسة بشكل غامض (أسماء وعناوين، الخ). تتم معالجة التشفير على قاعدة البيانات المتنقلة بالفعل، ولكن إذا حصل شخص على عقد من PDA في حين تم تسجيل في أنها يمكن أن تذهب لحسن الحظ من خلال البيانات حتى ماتت البطارية أو أنها إغلاق التطبيق، وكان لتسجيل الدخول مرة أخرى.

وعند وصول المستخدمين إلى تطبيق PDA التي يحتاجونها لإدخال اسم المستخدم والرقم السري. وكان الإصدار 1 من هذا البرنامج حدثا مدمن مخدرات في كل زر في النظام بحيث أنه عندما تم الضغط على الزر، وتحديث متغير يسمى LastActionTime. ركض الموقت في النموذج الرئيسي واذا كان ذلك LastActionTime منذ أكثر من 10 دقيقة ثم فإن نظام نفض نموذج تسجيل الدخول مرة أخرى حتى قيام المستخدم بتسجيل السابق / المشرف مرة أخرى في مرة أخرى (تماما مثل شاشة ويندوز تأمين).

وهذا سار على ما يرام ... بمعنى ... المشكلة في ذلك هو أنه تم التعامل مع أزرار فقط وليس التعامل مع عناصر تحكم أخرى، مثل ListViews، PictureBoxes، وما إلى ذلك.

هل هناك أي وسيلة جيدة لتحقيق ذلك؟ على سبيل المثال، هل هناك طريقة يمكنني أن أتقدم فئة نموذج Windows للتعامل مع كل حدث واحد وتحديث هذا المتغير وفقا لذلك؟ أو يمكن أن أفعل شيئا النوافذ سقو التي من شأنها أن التعامل مع كل حدث ماوس واحدة على شكل؟

لتكون موجزة تماما، ما أريد تحقيقه هو أنه عندما / لم يتم لمس شاشة PDA أزرار لمدة 10 دقيقة، وسوف PDA أعرف هذا واسمحوا لي أن أطلق النار لي طريقة تأمين.

وأي الأفكار، ومساعدة، وسوف التوجيه يحظى بتقدير كبير.

تعديل : في أستخدمه الاتفاق Framework 2.0 على ويندوز موبايل 6.0، ولكن وظيفة تحتاج للعمل على ويندوز موبايل 5.0 وأعلى

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

المحلول

وأحد الحلول الممكنة هو الاعتماد على دخول حالة الخمول السلطة المساعد الشخصي الرقمي. يمكنك تسجيل إخطار لهذا باستخدام OpenNETCF.WindowsCE.PowerManager.PowerIdle الحدث. في واقع الأمر هو فكرة جيدة أن تأخذ في الاعتبارات إدارة الطاقة الحساب. لا يمكنك ان تتوقع PDA الخاص بك لتكون في نفس الدولة في كل وقت.

وحل آخر سيكون لرصد الحدث غير نشط السائق المدخلات (انظر هذا <وأ href = "http://msdn.microsoft.com/en-us/library/ms889826.aspx" يختلط = "نوفولو noreferrer" > رابط ). ومع ذلك، فإن هذا الحل هو تحديدا جهاز للغاية.

للأسف لا توجد وسيلة في نظام التشغيل Windows CE لتسجيل ربط الحدث الماوس العالمي.

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

وبالمناسبة، في بيئة سطح المكتب وهذا يمكن تحقيقه بسهولة مع GetLastInputInfo.

نصائح أخرى

وتحقق هذه الوظيفة من:

HTTP: //social.msdn.microsoft.com/Forums/en-US/netfxcompact/thread/906b016d-f1ee-4b3e-b3df-1e3a6fea282a/

وأنا تصارعت مع نفس المشكلة، وانتهى الأمر باستخدام Application.AddMessageFilter للحصول على النتائج المناسبة. أن موضوع يحتوي في نهاية المطاف تصل إلى مشروع نموذج I كتب تبين عمل الخمول الموقت، بما في ذلك اغلاق subdialogs إذا لزم الأمر للعودة إلى نافذة الشاشة الرئيسية.

وديفيد

والحل نشرت هنا يعمل بالنسبة لي على WM6.5

HTTP: //www.dzhang.com/blog/2010/01/09/detecting-user-activity-or-inactivity-in-windows-mobile

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