如何使用VBA在Windows XP中获取空闲时间?

时间:2010-04-07 00:25:36

标签: ms-access vba winapi idle-processing

我想通过编程方式了解给定Windows XP计算机上用户输入的当前空闲时间。我在MS Access中使用VBA。我有什么选择?

1 个答案:

答案 0 :(得分:4)

我使用以下方法获得解决方案。

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
  • 磁盘
  • 网络
  • 其他设备

要了解有关效果和其他闲置类型的更多信息,请参阅此SO帖子here