Я использовал следующее для получения решения.
Private Declare Function GetTickCount Lib "kernel32" () As Long
Private Declare Function GetLastInputInfo Lib "user32" (plii As Any) As Long
Private Type LastInputInformation
cbSize As Long
dwTime As Long
End Type
Public Function GetUsersIdleTime() As Long
Dim lii As LastInputInformation
lii.cbSize = Len(lii)
Call GetLastInputInfo(lii)
GetUsersIdleTime = FormatNumber((GetTickCount() - lii.dwTime) / 1000, 2)
End Function
Существуют и другие части системы, которые могут простаивать, например,
- CPU
- Диск
- Сеть
- Другие устройства
Чтобы узнать больше о производительности и других типах простоя, см. Этот пост здесь .