Related links:
Very important:
Monitor all key and mouse input
http://stackoverflow.com/questions/744980/hide-mouse-cursor-after-an-idle-time/745227#745227
Monitor key and mouse input for special application
http://www.codeproject.com/KB/WPF/AutologoffWPF.aspx?msg=3330342#xx3330342xx
Some others:
http://stackoverflow.com/questions/1111615/getting-inactivity-idle-time-in-a-wpf-application
http://www.syncfusion.com/faq/wpf/wpf_c59c.aspx
http://social.msdn.microsoft.com/Forums/en-US/wpf/thread/44406a8d-6762-421d-9fcb-b1bc23cd9f1a
Monitor key and mouse input for special application sample
http://www.codeproject.com/KB/WPF/AutologoffWPF/AutoLogoffInWPF.zip
If you are using WinForms and will only deploy on Windows machines then it's quite easy to use user32 GetLastInputInfo
to handle both mouse and keyboard idling.
public static class User32Interop
{
public static TimeSpan GetLastInput()
{
var plii = new LASTINPUTINFO();
plii.cbSize = (uint)Marshal.SizeOf(plii);
if (GetLastInputInfo(ref plii))
return TimeSpan.FromMilliseconds(Environment.TickCount - plii.dwTime);
else
throw new Win32Exception(Marshal.GetLastWin32Error());
}
[DllImport("user32.dll", SetLastError = true)]
static extern bool GetLastInputInfo(ref LASTINPUTINFO plii);
struct LASTINPUTINFO
{
public uint cbSize;
public uint dwTime;
}
}
And then in your Form
public partial class MyForm : Form
{
Timer activityTimer = new Timer();
TimeSpan activityThreshold = TimeSpan.FromMinutes(2);
bool cursorHidden = false;
public Form1()
{
InitializeComponent();
activityTimer.Tick += activityWorker_Tick;
activityTimer.Interval = 100;
activityTimer.Enabled = true;
}
void activityWorker_Tick(object sender, EventArgs e)
{
bool shouldHide = User32Interop.GetLastInput() > activityThreshold;
if (cursorHidden != shouldHide)
{
if (shouldHide)
Cursor.Hide();
else
Cursor.Show();
cursorHidden = shouldHide;
}
}
}
分享到:
相关推荐
在软件开发中为了安全性,特别...判断程序是否长时间无人操作,有两个依据,第一个是鼠标长时间不动,第二个是鼠标焦点长时间不在此程序中(即用户长时间在操作其他的程序)。本例综合这两种情况给出一个较好的解决方案
用WPF实现的用户管理系统,主要实现用户的增删查改操作,数据库使用的是MYSQL数据库,资源中有数据库的建表语句,在数据库中建表后,在App.Config文件中修改数据库连接就可以跑起来,仅供WPF的学习。
WPF开发教程.rar 目录 WPF基础入门 3 1. WPF基础之体系结构 3 2. WPF基础之XAML 9 ...3. WPF的图像处理 205 4. WPF的三维图形应用 219 5. WPF的三维变换应用 229 6. WPF的动画开发 238 7. WPF的多媒体开发 250
WPF应用程序空闲时自动退出,可以自定义空闲时限, 自动退出或执行其他操作
启动任务线程:默认10分钟不操作即注销退出 Task.Factory.StartNew(() => { while (isMonitor) { if (DateTime.Now.Subtract(GlobalUtil.LastOperateTime).TotalMinutes >= GlobalUtil.AdminTimeoutMinute) { ...
一个简单的数据库链接例子 在WPF界面上进行操作 实现对数据库数据的增删改查 适合初初初学者 高手不要下 也别喷我
就是一个WPF如何自定义一个用户控件的小例子,主要是了解一下用户控件中不同的代码片应该插在哪里~
VS2019打包WPF安装程序最新教程,使用Visual Studio 2019开发的WPF程序如果想要打包为安装程序,除了在VS2019找到WPF项目类库直接右键发布之外,更常用的还是将其打包为exe或者msi的安装程序;打包成安装程序的话,...
wpf 用户控件 按钮.如果你不会用,我无法可说
WPF 流程图式编程
WPF 用户控件 Loading 效果
wpf示例wpf示例wpf示例wpf示例wpf示例wpf示例wpf示例wpf示例wpf示例wpf示例wpf示例wpf示例wpf示例wpf示例wpf示例wpf示例wpf示例wpf示例wpf示例wpf示例wpf示例wpf示例wpf示例wpf示例wpf示例wpf示例wpf示例wpf示例wpf...
WPF框架WPF框WPF框架架WPF框架WPF框架WPF框架WPF框架WPF框架WPF框架WPF框架WPF框架
wpf 时间轴控件
为避免让你感到失望,在这里我要先澄清一下,这不是一本关于Microsoft PowerPoint 的书(许多人认为WPF 是由PowerPoint 演化而来的) ,WPF 是微软最新的图形用户界面技术,这里的用户界面可以是普通的窗体、以文档...
WPF做的流程图软件,实现控件图元的拖动,缩放,连线等功能(含源代码)
C#定时检测是否当前程序是否有人操作(WPF实现),winform中也一样,其中的核心类可通用。
WPF做的用户管理界面,WPF做的用户管理界面,WPF做的用户管理界面
WPF优秀项目及源码 wosk-94877WPF优秀项目及源码 wosk-94877WPF优秀项目及源码 wosk-94877WPF优秀项目及源码 wosk-94877WPF优秀项目及源码 wosk-94877WPF优秀项目及源码 wosk-94877WPF优秀项目及源码 wosk-94877WPF...
WPF提供了基础的键盘类(System.Input.Keyboard类),该类提供与键盘相关的事件、方法和属性,这些事件、方法和属性提供有关键盘状态的信息。Keyboard的事件也通过UIElement等XAML基元素类的事件向外提供。 对于键盘...