我正在尝试编写一个系统服务,可以检测用户是否处于活动状态,然后再启动进程。我正在使用服务,因为如果用户登录或不登录,我想要这个。我一直试图挂钩到user32.dll API并检索自上次用户输入以来的时间。但是返回的整数总是0,所以我认为它没有正常工作。这是作为系统服务运行时不可能的吗?
答案 0 :(得分:0)
您可能希望在user32.dll上使用getlastinputinfo
<DllImport("user32.dll")> _
Shared Function GetLastInputInfo(ByRef plii As LASTINPUTINFO) As Boolean
End Function
<StructLayout(LayoutKind.Sequential)> _
Structure LASTINPUTINFO
<MarshalAs(UnmanagedType.U4)> _
Public cbSize As Integer
<MarshalAs(UnmanagedType.U4)> _
Public dwTime As Integer
End Structure
MSDN上的