문제

좋은 아침,

저는 거리에서 사용될 중간 크기의 PDA 응용 프로그램의 개발자입니다. PDA에는 모호한 민감한 데이터 (이름 및 주소 등)가 포함됩니다. 모바일 데이터베이스의 암호화는 이미 처리되었지만, 누군가가 로그인 한 상태에서 누군가가 PDA를 보유하고 있다면 배터리가 죽거나 응용 프로그램을 닫고 다시 로그인해야 할 때까지 데이터를 행복하게 통과 할 수 있습니다.

사용자가 PDA 응용 프로그램에 액세스하면 사용자 이름과 핀 번호를 입력해야합니다. 이 소프트웨어의 버전 1에는 이벤트가 시스템의 모든 버튼에 연결되어 버튼을 누르면 LastActionTime이라는 변수가 업데이트되었습니다. 타이머가 기본 양식에 실행되었으며 마지막으로 10 분 이상이면 이전 사용자/관리자가 다시 로그인 할 때까지 시스템이 로그인 양식을 다시 던지게됩니다 (Windows Lockout 화면처럼).

이것은 잘 작동했습니다 ... 어떤 의미에서 ... 문제는 버튼 만 처리했으며 ListViews, PictureBoxes 등과 같은 다른 컨트롤을 처리하지 않았다는 것입니다.

이것을 달성하는 좋은 방법이 있습니까? 예를 들어, 모든 단일 이벤트를 처리하고 그 변수를 그에 따라 업데이트하기 위해 Windows 양식 클래스를 확장 할 수있는 방법이 있습니까? 아니면 양식의 모든 단일 마우스 이벤트를 처리하는 Windows-esque를 할 수 있습니까?

완전히 간결하게 말하면, 내가 달성하고 싶은 것은 PDA 화면/버튼이 10 분 동안 터치되지 않았을 때 PDA가 이것을 알고 잠금 방법을 해고 할 수 있다는 것입니다.

모든 생각, 도움 및지도는 대단히 감사 할 것입니다.

편집하다: Windows Mobile 6.0에서 Compact Framework 2.0을 사용하고 있지만 기능은 Windows Mobile 5.0 이상에서 작동해야합니다.

도움이 되었습니까?

해결책

가능한 해결책 중 하나는 PDA의 Power Idle State에 의존하는 것입니다. OpenNETCF.windowsce.powerManager.powerIdle 이벤트를 사용 하여이 알림을 등록 할 수 있습니다. 실제로 전력 관리 고려 사항을 고려하는 것이 좋습니다. PDA가 항상 같은 상태에있을 것으로 기대할 수는 없습니다.

또 다른 솔루션은 입력 드라이버의 비활성 이벤트를 모니터링하는 것입니다 (이 참조 링크). 그러나이 솔루션은 매우 장치에 따라 다릅니다.

불행히도 Windows CE에는 글로벌 마우스 이벤트 후크를 등록 할 방법이 없습니다.

위는 OS 솔루션이었습니다. Windows 양식 및 제어 클래스를 확장하여 쉽게 수행 할 수있는 방법은 없습니다. 아마도 당신은 당신이 사용할 모든 컨트롤을 확장해야 할 것입니다. 가장 쉬운 솔루션은 모든 컨트롤과 양식에 대한 getfocus 메소드를 구현하는 것입니다. 당신은 당신의 카운터를 거기에서 재설정 할 수 있습니다.

그건 그렇고, 데스크탑 환경에서 이것은 getlastinputinfo로 쉽게 달성 할 수 있습니다.

다른 팁

이 게시물을 확인하십시오.

http://social.msdn.microsoft.com/forums/en-us/netfxcompact/thread/906b016d-f1ee-4b3e-b3df-1e3a6fea282a/

나는 같은 문제와 씨름하고 결국 적절한 결과를 얻기 위해 application.addmessageFilter를 사용했습니다. 이 스레드에는 결국 기본 창 화면으로 돌아가려면 필요한 경우 서브 다이얼 로그를 종료하는 등 비 활동 타이머 작동을 보여주는 샘플 프로젝트에 대한 링크가 포함되어 있습니다.

데이비드

여기에 게시 된 솔루션은 WM6.5에서 저를 위해 작동합니다

http://www.dzhang.com/blog/2010/01/09/detecting-user-activity-nactivity-in-windows-mobile

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top