나는 현재 일정량의 비 활동 시간에 사용자를 로그 아웃 할 것입니다. 나는Application.Idle acting differentently
Private Sub ctlManagePw_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
AddHandler System.Windows.Forms.Application.Idle, AddressOf Application_Idle
End Sub
그리고 타이머 폼로드 이벤트에 전화, 그리고
Private Sub Application_Idle(sender As Object, e As EventArgs)
Timer.Interval = My.Settings.LockOutTime
Timer.Start()
End Sub
Application.Idle
선언Private Sub Timer_Tick(sender As Object, e As EventArgs) Handles Timer.Tick
Try
If My.Settings.TrayIcon = 1 Then
Me.ParentForm.Controls.Remove(Me)
control_acPasswords()
_Main.NotifyIcon.Visible = True
_Main.NotifyIcon.ShowBalloonTip(1, "WinVault", "You've been locked out due to innactivity", ToolTipIcon.Info)
End If
'Stop
Timer.Stop()
Timer.Enabled = False
'Flush memory
FlushMemory()
Catch ex As Exception
'Error is trapped. LOL
Dim err = ex.Message
End Try
End Sub
유휴 이벤트가 I를 초과 할 때마다이의 문제입니다 내가 여전히 잠금 상태 였거나 응용 프로그램이 유휴 이벤트에 들어갔다는 알림이 계속 나타납니다. 내가 메모리를
Declare Function SetProcessWorkingSetSize Lib "kernel32.dll" (ByVal process As IntPtr, ByVal minimumWorkingSetSize As Integer, ByVal maximumWorkingSetSize As Integer) As Integer
Public Sub FlushMemory()
Try
GC.Collect()
GC.WaitForPendingFinalizers()
If (Environment.OSVersion.Platform = PlatformID.Win32NT) Then
SetProcessWorkingSetSize(Process.GetCurrentProcess().Handle, -1, -1)
Dim myProcesses As Process() = Process.GetProcessesByName(Application.ProductName)
Dim myProcess As Process
For Each myProcess In myProcesses
SetProcessWorkingSetSize(myProcess.Handle, -1, -1)
Next myProcess
End If
Catch ex As Exception
Dim err = ex.Message
End Try
End Sub
을 확보 어디 Timer_Tick 이벤트 예외에 MsgBox(ex.Message)
을 넣으면, 내가 점점 계속
control_acPasswords()
입니다 그리고 여기
Object reference not set to an instance of an object
예상되는 결과는 양식이 유휴 이벤트를 입력 할 때마다 간격 또는 My.Settings.LockOutTime
에서 시간은 또는 60 seconds
에 대해 60000
으로 저장하고 타이머를 시작합니다. 이제 Timer_Tick을 누른 다음 logout
사용자에게 간격이 끝난 경우.
이벤트 처리 방법에 문제가 있습니까?
어떤 종류의 '타이머'를 사용하고 있습니까? 'Timer'라는 프레임 워크에서 제가 아는 최소한 3 가지 클래스가 있습니다 ... –
도구 상자에서 타이머 컨트롤. 방금 타이머라고 명명했습니다. –
@Damien_The_Unbeliever –