Как обнаружить неактивность в VB.NET

Мое приложение должно выдавать предупреждение до блокировки компьютера. Он использует таймер, установленный на 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, который имеет интервал в секунду. Если пользователь взаимодействует с клавиатурой или мышью, счетчик сбрасывается на x секунд (в этом примере это 15 секунд для целей тестирования; я не могу ждать реального времени каждый раз, когда хочу протестировать приложение). Все вышеперечисленное работало отлично, пока я не подумал о воспроизведении видео. В случае, если вы не заметили, воспроизведение видео на YouTube или WMP... и т. Д. Не позволяет компьютеру блокироваться / спать.

У меня простой вопрос... Как определить, воспроизводится ли видео, и сбросить счетчик обратно на x. Еще лучший вопрос: как я могу определить, как долго компьютер блокируется, чтобы мне даже не нужно было подсчитывать или определять активность пользователя?

0 ответов

Другие вопросы по тегам