我可以从系统服务中检索user32.dll getlastinputtime吗?

时间:2011-06-09 06:50:14

标签: vb.net windows-services user32

我正在尝试编写一个系统服务,可以检测用户是否处于活动状态,然后再启动进程。我正在使用服务,因为如果用户登录或不登录,我想要这个。我一直试图挂钩到user32.dll API并检索自上次用户输入以来的时间。但是返回的整数总是0,所以我认为它没有正常工作。这是作为系统服务运行时不可能的吗?

1 个答案:

答案 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上的

LASTINPUTINFO