C# WPF中定时检测程序用户操作状态的方法
在C#中实现定时检测当前程序是否有用户操作,可通过WPF和WinForms框架来完成。该实现方式基于一个核心类,可跨框架使用。
实现步骤:
- 创建计时器:在WPF中,可以使用
DispatcherTimer类实现定时检测,设定定时周期(如5秒)。 - 检测用户操作状态:使用
GetLastInputInfo方法获取用户最后一次操作的时间,通过判断当前时间与最后操作时间的差值,确定是否存在操作。 - 封装为通用类:将计时器和检测逻辑封装到一个类中,这样可以在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# WPF或WinForms应用中检测用户的操作状态,提升程序响应性和用户体验。
                            
                            TestMouseMove.zip
                            预估大小:1个文件
                        
                        
                        
                                
                                TestMouseMove_1618358414
                                文件夹
                            
                                                        
                                
                                TestMouseMove.rar
                                49KB
                            
                            
                            
                                                    
                                        
                                    文件大小:36.26KB
                                
                                
                                
                            
评论区