您的位置:首页 > 编程语言 > C#

C#获取键盘和鼠标操作的时间的类

2013-01-17 17:43 351 查看
原文转自:http://www.cnblogs.com/kevinGao/archive/2011/09/19/2181464.html

最近在开发项目时需要实现屏保功能,即用户在设定的时间内没有对系统进行操作时,系统将会自动进入屏保状态。

为此封装了一个获取鼠标键盘动作的类,并有一个方法可以返回用户多长时间没有操作系统的时间。

代码如下:

public class MouseKeyBoardOperate
{
///
<summary>
/// 创建结构体用于返回捕获时间
///
</summary>
[StructLayout(LayoutKind.Sequential)]

struct LASTINPUTINFO
{
///
<summary>
/// 设置结构体块容量
///
</summary>
[MarshalAs(UnmanagedType.U4)]

public int cbSize;

/// <summary>
/// 抓获的时间
///
</summary>
[MarshalAs(UnmanagedType.U4)]

public uint dwTime;
}

[DllImport("user32.dll")]
private static extern bool
GetLastInputInfo(ref LASTINPUTINFO plii);
///
<summary>
/// 获取键盘和鼠标没有操作的时间
///
</summary>
///
<returns>用户上次使用系统到现在的时间间隔,单位为秒</returns>
public static
long GetLastInputTime()
{
LASTINPUTINFO vLastInputInfo
= new LASTINPUTINFO();
vLastInputInfo.cbSize =
Marshal.SizeOf(vLastInputInfo);
if (!GetLastInputInfo(ref
vLastInputInfo))
{
return 0;

}
else
{
long count =
Environment.TickCount - (long)vLastInputInfo.dwTime;
long
icount = count / 1000;
return icount;

}
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: