0

ユーザーがアクティブかどうかを検出し、そうでない場合はプロセスを起動できるシステム サービスを作成しようとしています。ユーザーがログインしているかどうかにかかわらず、これを機能させたいので、サービスを使用しています。user32.dll API にフックして、最後のユーザー入力からの時間を取得しようとしています。ただし、返される整数は常に 0 であるため、正しく機能しているとは思えません。システムサービスとして実行している場合、これは不可能ですか?

4

1 に答える 1

1

getlastinputinfouser32.dllで使用したい場合があります

<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

于 2011-06-09T08:32:41.090 に答える