键盘鼠标空闲时间问题 1。捕获鼠标的坐标,以及键盘的响应。把坐标放到一个变量中。2。启动一个timer每秒检查一下变量中的坐标和现在鼠标的坐标是否一致,如果一致而且时间已到5分钟,那么就显示A窗体。此方法比较苯。不过可行。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 给个思路吧,这个我没试过重载A窗体的键盘事件OnKeyPress和鼠标OnMouseMove事件,设置一个全局变量,有任何鼠标键盘事件发生时复位,通过定时器判定这个变量的值,超过某一阀值的时候关闭A弹出的子窗体,这个思路也许会有问题,比如B的窗体在接收键盘事件后,该消息会不会到达A窗体,如果不能,还需要在B窗体进行重载,使得消息能到达A窗体。 谢谢2楼和3楼的朋友。我使用了[StructLayout(LayoutKind.Sequential)] public struct LASTINPUTINFO { [MarshalAs(UnmanagedType.U4)] public int cbSize; [MarshalAs(UnmanagedType.U4)] public uint dwTime; } [DllImport("user32.dll")] public static extern bool GetLastInputInfo(ref LASTINPUTINFO plii); public static long GetLastInputTime() { LASTINPUTINFO vLastInputInfo = new LASTINPUTINFO(); vLastInputInfo.cbSize = Marshal.SizeOf(vLastInputInfo); if (!GetLastInputInfo(ref vLastInputInfo)) return 0; return Environment.TickCount - (long)vLastInputInfo.dwTime; }可以获取空闲时间。我的想法是能不能在A窗体启动的时候开启一个线程,然后这个线程就是监控空闲时间,并且如果时间达到了5分钟,那么我就返回A窗体。代码写的时候问题N多。呵呵。 A、B、C窗体只能有一个窗体是在最前端的。写个类,让A、B、C都继承。不用分别起线程吧。 问个linq和ftp的问题 剪切或者替换字符串 把这段Delphi程序翻译成C# 请各位帮忙对这个初始页的后台代码逐行解释一下?!! 如何使一个对象转换成byte[]类型,通过SOCKET传送! 自定义控件中如何实现如ComboBox下拉列表夸越窗体边界显示的功能? 在上海要怎么样找工作(顶者有分,不够再加) 如何从一个dll里得到它里面的类? 怎么不出现事件清单? 怎样保存我在编辑器里的代码折叠? 任何实现关键字竟价排名,就如百度这样的??? 数据库链接中:未将对象引用设置到对象的实例
重载A窗体的键盘事件OnKeyPress和鼠标OnMouseMove事件,设置一个全局变量,有任何鼠标键盘事件发生时复位,通过定时器判定这个变量的值,超过某一阀值的时候关闭A弹出的子窗体,
这个思路也许会有问题,比如B的窗体在接收键盘事件后,该消息会不会到达A窗体,如果不能,还需要在B窗体进行重载,使得消息能到达A窗体。
我使用了
[StructLayout(LayoutKind.Sequential)]
public struct LASTINPUTINFO
{
[MarshalAs(UnmanagedType.U4)]
public int cbSize;
[MarshalAs(UnmanagedType.U4)]
public uint dwTime;
}
[DllImport("user32.dll")]
public static extern bool GetLastInputInfo(ref LASTINPUTINFO plii);
public static long GetLastInputTime()
{
LASTINPUTINFO vLastInputInfo = new LASTINPUTINFO();
vLastInputInfo.cbSize = Marshal.SizeOf(vLastInputInfo);
if (!GetLastInputInfo(ref vLastInputInfo)) return 0;
return Environment.TickCount - (long)vLastInputInfo.dwTime;
}
可以获取空闲时间。
我的想法是能不能在A窗体启动的时候开启一个线程,然后这个线程就是监控空闲时间,并且如果时间达到了5分钟,那么我就返回A窗体。代码写的时候问题N多。呵呵。