WPF:检测用户在一定时间内没有动作(即没有鼠标键盘的事件)

参考的网址有:

http://bbs.csdn.net/topics/100033612

http://blog.csdn.net/dengta_snowwhite/article/details/6154199

详细做法:

1、定义结构体

[StructLayout(LayoutKind.Sequential)]
    struct LASTINPUTINFO
    {
        // 设置结构体块容量
        [MarshalAs(UnmanagedType.U4)]
        public int cbSize;
        // 捕获的时间
        [MarshalAs(UnmanagedType.U4)]
        public uint dwTime;
    }

2、定义定时器,结构体对象等

private DispatcherTimer mIdleTimer;
private LASTINPUTINFO mLastInputInfo;

[DllImport("user32.dll")]
 private static extern bool GetLastInputInfo(ref LASTINPUTINFO plii);

3、初始化

mLastInputInfo = new LASTINPUTINFO();
mLastInputInfo.cbSize = Marshal.SizeOf(mLastInputInfo);

mIdleTimer = new System.Windows.Threading.DispatcherTimer();
mIdleTimer.Tick += new EventHandler(IdleTime);//起个Timer一直获取当前时间
mIdleTimer.Interval = new TimeSpan(0, 0, 0, 1, 0);
mIdleTimer.Start();

4、实现

private void IdleTime(object sender, EventArgs e)
{

    if (!GetLastInputInfo(ref mLastInputInfo))
                MessageBox.Show("GetLastInputInfo Failed!");
            else
            {
                if ((Environment.TickCount - (long)mLastInputInfo.dwTime) / 1000 > 300)
                {
                    MessageBox.Show("no operation for 5 minutes.");
                }
            }

}

WPF:检测用户在一定时间内没有动作(即没有鼠标键盘的事件)

时间: 2024-07-31 23:15:48

WPF:检测用户在一定时间内没有动作(即没有鼠标键盘的事件)的相关文章

adblockTester通过js检测用户浏览器是否安装了AdBlock

adblockTester 简介 首先有必要介绍一下AdBlock,它是一款知名网页广告屏蔽插件,在各大主流浏览器上均有AdBlock插件. AdBlock为用户带来了一片蓝天,却苦了站长,尤其是苦逼小站长,广告被屏蔽,很多站长要饿死街头. adblockTester 正是站长们苦苦寻求的一款jQuery插件,它可以检测用户浏览器是否安装并激活了AdBlock插件,如果检测到激活了AdBlock,站长就可以做一些事情,比如,告诉用户你挡我财路了. 当然,不仅仅是AdBlock,其他的广告屏蔽插件

js+jquery检测用户浏览器型号(包括对360浏览器的检测)

做网站,js检测用户浏览器的版本,是经常要使用到,今天自己写了一个js,完成了对于一些常见浏览器的检测,但是,偏偏对于360浏览器的检测没有任 何办法,研究了一会儿,无果.无论是360安全浏览器,还是360极速浏览器,在极速模式下面,都只能检测到用户是使用的谷歌浏览器.后来在网上找了很 久,看了很多大神的帖子,结合了自己的想法,写出了下面的解决办法: 这是 BrowserCheck.html页面显示文件: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1

iOS开发-检测用户截屏, 并获取所截图片

微信可以检测到用户截屏行为(Home + Power),并在稍后点击附加功能按钮时询问用户是否要发送刚才截屏的图片,这个用户体验非常好.于是乎, 我也想着实现这个功能. 在iOS7之前, 如果用户截屏,系统会自动取消屏幕上的所有 touch 事件,(使用 touchesCancelled:withEvent: 这个方法)那么我们就可以检测这个方法的调用,然后加载本地最新图片再加以判断来实现我们的目的.但在 iOS 7 之后,截屏不再会取消屏幕的 touch 事件,所以导致了 Snapchat 和

WPF 检测计算机网络连接情况

1 public static class NetWork 2 { 3 [DllImport("wininet.dll")] 4 private extern static bool InternetGetConnectedState(out int connectionDescription, int reservedValue); 5 6 public static bool IsOnLine() 7 { 8 try 9 { 10 var connection = 0; 11 re

MVC 检测用户是否已经登录

     当我们访问某个网站的时候需要检测用户是否已经登录(通过Session是否为null),我们知道在WebForm中可以定义一个BasePage类让他继承System.Web.UI.Page,重写它的OnInit()方法,在OnInit()中判断Session中是否有用户登录的信息 ///<summary> /// 公共基类里面干一些公共的事情 ///</summary> public class BasePage : System.Web.UI.Page { //页面生命周

[转]MVC 检测用户是否已经登录

本文转自:http://blog.csdn.net/jayzai/article/details/41252137 当我们访问某个网站的时候需要检测用户是否已经登录(通过Session是否为null),我们知道在WebForm中可以定义一个BasePage类让他继承System.Web.UI.Page,重写它的OnInit()方法,在OnInit()中判断Session中是否有用户登录的信息 [csharp] view plaincopyprint? ///<summary> /// 公共基类

脑机音乐接口,高效检测用户的情绪状态

目录 本分享为脑机学习者Rose整理发表于公众号:脑机接口社区(微信号:Brain_Computer).QQ交流群:903290195 英国雷丁大学和普利茅斯大学的研究团队开发和评估了一个情感脑-机音乐接口(aBCMI),用来调节用户的情感状态.构造一个aBCMI来检测用户的当前情感状态并尝试调制它为了实现特定的目标(例如,用户平静或快乐)通过播放音乐根据一个特定的情感目标生成算法作曲系统和基于案例的推理系统. 脑机音乐接口(BCMI)是一种特定类型的BCI,其目的是让用户与音乐进行交互或控制音

WPF 禁用TextBox的触摸后自动弹出虚拟键盘

原文:WPF 禁用TextBox的触摸后自动弹出虚拟键盘 前言 & 问题 如下截图,TextBox,在触摸点击后,会自动弹出windows的虚拟键盘. 如何,禁用键盘的自动弹出? 调用虚拟键盘 通过调用TapTip.exe或者osk.exe,主动弹出虚拟键盘 详细调用可参考:c#调用windows虚拟键盘 如何禁用键盘的弹出 TextBox在触摸点击后,会自动弹出虚拟键盘,是因为在控件中作了封装. --TextBox中详细TabTip.exe封装看了会,没找到 处理方案:重写TextBox的方法

WPF Prism框架下基于MVVM模式的命令、绑定、事件

原文:WPF Prism框架下基于MVVM模式的命令.绑定.事件 Prism框架下的自定义路由事件和命令绑定 BaseCode XAML代码: <Button x:Class="IM.UI.CommandEx.PrismCommandEx" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/wi