C# WPF中定时检测程序用户操作状态的方法

C#中实现定时检测当前程序是否有用户操作,可通过WPFWinForms框架来完成。该实现方式基于一个核心类,可跨框架使用。

实现步骤:

  1. 创建计时器:在WPF中,可以使用DispatcherTimer类实现定时检测,设定定时周期(如5秒)。
  2. 检测用户操作状态:使用GetLastInputInfo方法获取用户最后一次操作的时间,通过判断当前时间与最后操作时间的差值,确定是否存在操作。
  3. 封装为通用类:将计时器和检测逻辑封装到一个类中,这样可以在WPF或WinForms中灵活使用。
// 示例代码
public class UserActivityMonitor {
    private DispatcherTimer _timer;

    public UserActivityMonitor(int interval) {
        _timer = new DispatcherTimer { Interval = TimeSpan.FromSeconds(interval) };
        _timer.Tick += CheckUserActivity;
        _timer.Start();
    }

    private void CheckUserActivity(object sender, EventArgs e) {
        // 检查用户最后一次操作
        if (UserInactive()) {
            // 执行无操作的相应处理
        }
    }

    private bool UserInactive() {
        // 实现GetLastInputInfo的检测逻辑
        return ...;
    }
}

通过上述实现,能够方便地在C# WPFWinForms应用中检测用户的操作状态,提升程序响应性和用户体验。

zip
TestMouseMove.zip 预估大小:1个文件
folder
TestMouseMove_1618358414 文件夹
file
TestMouseMove.rar 49KB
zip 文件大小:36.26KB