おはよう、 自動ログオフ機能を備えたvb6プログラムを作成しました。私はAPIを使用し、それは正常に動作しますが、mdiChildフォームのみで動作します。フォームがモーダルフォームで読み込まれると、タイマーは停止します。私は自分のコードを1行ずつシミュレートしようとしました。そして、 "Form1.show vbmodal"でコードが停止することがわかりました。 vbmodalとしてロードされたフォームでもタイマーを続けるにはどうすればよいですか?どんな助けもありがとう。前もって感謝します。 ところで、ここに私のコードは次のとおりです。あなたはモーダルダイアログとして期待しているものをVBModalフォームのロード時にAPIタイマーが停止する
Private Declare Function GetQueueStatus Lib "user32.dll" (ByVal fuFlags As Long) As Long
'API For Inactivity Monitoring SMQ
Private Const QS_KEY = &H1
Private Const QS_MOUSEMOVE = &H2
Private Const QS_MOUSEBUTTON = &H4
Private Const QS_TIMER = &H10
Private Const QS_MOUSE = (QS_MOUSEMOVE Or QS_MOUSEBUTTON)
Private Const QS_INPUT = (QS_MOUSE Or QS_KEY)
Private Const QS_ALLEVENTS = (QS_MOUSE Or QS_KEY Or QS_TIMER)
Public Sub CheckInputIdle(ByVal TimeOut As Long)
Dim lTimer As Long
lTimer=Timer
Do While gCancelAutoLogOff = False
DoEvents
If GetQueueStatus(QS_INPUT) Then
lTimer = Timer
End If
If Timer - lTimer >= TimeOut Then Exit Do
Loop
If gCancelAutoLogOff = False Then
gCancelAutoLogOff = True
MainForm.Logoff
End If
End Sub
ありがとうC-Pound Guru – codesdozer
モーダルフォームが読み込まれるたびにAPI Timer関数を再度呼び出す必要があると思います。 – codesdozer