我的应用程序应该在PC锁定之前发出警告。它使用一个定时器,设置为x秒(x =计算机锁定不活动之前的时间)。 我使用以下代码来检测鼠标和键盘活动:
Private Declare Function GetLastInputInfo Lib "user32.dll" (ByRef inputStructure As inputInfo) As Boolean
Private Structure inputInfo
Dim structSize As Int32
Dim tickCount As Int32
End Structure
Private info As inputInfo
Dim lastTick As Int32
Dim firsttick As Int32
Private Sub Timer2_Tick(sender As Object, e As EventArgs) Handles Timer2.Tick
'The size of the structure for the API call.
info.structSize = Len(info)
'
'Call the API.
GetLastInputInfo(info)
'
'Compare the tickcount values to determine if activity has occurred or not.
If firstTick <> info.tickCount Then
firsttick = info.tickCount
count = 15
Me.WindowState = FormWindowState.Minimized
Me.Visible = False
End If
End Sub
计数由定时器1确定,定时器1具有一秒的间隔。如果用户与键盘或鼠标交互,则计数重置为x秒(在此示例中,为了测试目的,它是15秒;我不想在每次要测试应用程序时等待实际时间)。 所有这些都完美地工作,直到,我想到了视频播放。如果您没有注意到,在YouTube或WMP上播放视频等会阻止PC锁定/休眠。
我的问题很简单......我如何检测视频是否正在播放并重置计数回到x。一个更好的问题是:如何检测计算机锁定的时间,所以我甚至不需要计算或检测用户活动?