如何检查程序是否正在使用?

时间:2015-03-05 11:37:04

标签: c# winforms logging

我需要在用户不使用它时关闭应用程序(C#) - 假设当任何形式的程序上没有Click事件时(大约有100个表单)。有没有办法做到这一点没有处理点击甚至在应用程序的每个表单上。 (我每分钟运行一次线程,可以检查它)? 提前谢谢!

1 个答案:

答案 0 :(得分:2)

您可以使用Application.AddMessageFilter功能挂钩应用程序消息循环。编写一个消息过滤器,检查所有鼠标点击消息和/或键盘消息,或者您感兴趣的任何内容。

例如:

public class DetectActivityMessageFilter : IMessageFilter
{
    private const int WM_LBUTTONDOWN = 0x0201;

    public bool PreFilterMessage(ref Message m)
    {
        if (m.Msg == WM_LBUTTONDOWN)
        {
            // The left mouse button was pressed
        }

        return false;
    }
}