2011-11-11 2 views
3

VB.net Windows 양식 응용 프로그램에서 최근 활동을 감지하는 방법을 알고있는 사람 있습니까?신청서에 활동이 있었는지 확인 하시겠습니까? VB.net

사용자가 바닥에있는 컴퓨터를 공유하는 소매점이 있습니다. 응용 프로그램은 각 컴퓨터에 있으며 사용하기 전에 로그인해야합니다. 내가 유휴 상태 일 경우 자동으로 응용 프로그램을 닫는 방법을 찾으려고합니다. 10 분을 말합니다.

나는 세션의 현재 윈도우 로그와 비슷한 것을 할 수 있다고 생각하는데, 10 분 동안 아무 것도하지 않으면 로그 아웃하는 gp를 설정한다. 그러나 vb에서 쉽게 수행 할 수있는 비 메모리 집중적 인 방법이있다. 순 차라리 그 방법을

감사를 사용하는 것이

답변

4

응용 프로그램이 시작되면 Application.Idle 이벤트에 대한 처리기를 만듭니다. 또한 10 분 타이머 인 개체를 만듭니다. 이벤트 큐가 비울 때마다 Appliation.Idle 이벤트가 발생합니다. 마우스를 움직이면 이벤트가 발생합니다. 키를 누르면 이벤트가 발생합니다. Application.Idle과 함께 Handles 키워드를 사용할 수 없습니다. Handles은 정적 개체가 아닌 로컬 데칼링 된 개체에만 작동합니다. 사용자가 10 분 이상 걸리는 작업을 시작하면이와

Public Sub MainForm_Load(sender As Object, e As EventArgs) Handles MainForm.Load 
    AddHandler System.Windows.Forms.Application.Idle, AddressOf Application_Idle 
    ' TODO: Create the 10-minute timer. 
End Sub 

Private Sub Application_Idle(sender As Object, e As EventArgs) 
    ' TODO: Restart the 10-minute timer. 
End Sub 

' This assumes your TenMinuteTimer object has an Expire event. Do what works for you instead. 
Private Sub TenMinuteTimer_Expire(sender As Object, e As EventArgs) Handles TenMinuteTimer.Expire 
    ' TODO: Close the application safely. 
End Sub 

유일한 문제는, 그것은 TenMinuteTimer.ExpireApplication.Idle을 올릴 것이다. 이 문제가 발생할 것으로 예상되면 장기 실행 코드를 실행하기 전에 TenMinuteTimer를 비활성화하고 나중에 다시 활성화하십시오.

1

당신에게 Application.Idle 이벤트를 사용하여 시도 할 수 있습니다; 같은 :

당신이 아래로 응용 프로그램을 종료하거나 열어두고 마십시오 당신이 후 발생할 수있는 다양한 시나리오 모두에 대해 걱정할 필요가 없기 때문에

Private Sub Application_Idle(ByVal sender As Object, ByVal e As EventArgs) 

    MessageBox.Show("You are in the Application.Idle event.") 

End Sub 
1

내가 개인적으로 윈도우 구현을 추천?

사용자가 화면에 메시지 (메시지 상자)를 표시하면 어떨까요?

앱을 종료 한 경우 진행중인 작업을 어떻게 처리합니까?

앱을 종료하지 않은 경우 사용자에게 어떻게 알리고 다른 사용자가 로그인하려면 이전 사용자의 정보를 정상적으로 롤백하는 방법은 무엇입니까?

다른 사용자가 로그인하려면 어떻게하면 이전 사용자가 화면에 남긴 중요한 정보가 표시되지 않도록 할 수 있습니까?

그러나이 작업을 계속 수행하려면 IMessageFilter를 통해 표준 Windows 메시지 파이프 라인에 연결하는 것이 가장 좋습니다. Here은 이것을 사용하는 방법에 대한 기사입니다.

0

커서의 좌표를 주기적으로 확인하고 마지막 확인 후 커서가 변경되었는지 확인할 수 있습니다. 변경하지 않고 일정 금액을 확인한 후 응용 프로그램을 닫습니다. 아마 최선의 방법은 아니지만, 확실히 선택 사항입니다.

관련 문제