ユーザーが非アクティブであることを確認するにはどうすればよいですか? 私はこれを持っています:
class UserActivity : IMessageFilter
{
private double afk_time = 0.1;//minutes
private DateTime last_activity = DateTime.Now;
public static bool inactive = false;
private int WM_LBUTTONDOWN = 0x0201;
private int WM_MBUTTONDOWN = 0x0207;
private int WM_RBUTTONDOWN = 0x0204;
private int WM_MOUSEWHEEL = 0x020A;
private int WM_MOUSEMOVE = 0x0200;
private int WM_KEYDOWN = 0x0100;
public bool PreFilterMessage(ref Message m)
{
if (m.Msg == WM_LBUTTONDOWN || m.Msg == WM_MBUTTONDOWN || m.Msg == WM_RBUTTONDOWN || m.Msg == WM_MOUSEWHEEL || m.Msg == WM_MOUSEMOVE || m.Msg == WM_KEYDOWN)
{
this.last_activity = DateTime.Now;
inactive = false;
}
if (DateTime.Now.AddMinutes(-afk_time) > last_activity)
inactive = true;
return false;
}
}
しかし、Program.cs で実行する必要があります。
Application.AddMessageFilter(new UserActivity());
自分でユーザーの非アクティブのチェックを実行できるようにするにはどうすればよいですか。いくつかのチェックボックスをオンにすると、チェックが開始されます。
そして、アプリだけでなくすべてのシステムで、グローバルなユーザーアクティビティを確認したい.
不必要にCPUを使いたくない。または、別のソリューションを使用する必要がありますか?