键盘鼠标空闲时间问题

问题描述

大家好.问个问题.我有很多个窗体,A(程序启动的时候启动的窗体),B,C.现在想要的功能就是在A,B,C窗体中没有任何鼠标和键盘操作的时间达到5分钟就返回到A窗体。如何实现?有没有统一处理的方法。我现在想到的就是每个窗体加一个Timer来判断。但是很多窗体每一个都这样写。太麻烦了吧。是不是有比较简单的方法?

解决方案

解决方案二:
在线等!
解决方案三:
1。捕获鼠标的坐标,以及键盘的响应。把坐标放到一个变量中。2。启动一个timer每秒检查一下变量中的坐标和现在鼠标的坐标是否一致,如果一致而且时间已到5分钟,那么就显示A窗体。此方法比较苯。不过可行。
解决方案四:
给个思路吧,这个我没试过重载A窗体的键盘事件OnKeyPress和鼠标OnMouseMove事件,设置一个全局变量,有任何鼠标键盘事件发生时复位,通过定时器判定这个变量的值,超过某一阀值的时候关闭A弹出的子窗体,这个思路也许会有问题,比如B的窗体在接收键盘事件后,该消息会不会到达A窗体,如果不能,还需要在B窗体进行重载,使得消息能到达A窗体。
解决方案五:
谢谢2楼和3楼的朋友。我使用了[StructLayout(LayoutKind.Sequential)]publicstructLASTINPUTINFO{[MarshalAs(UnmanagedType.U4)]publicintcbSize;[MarshalAs(UnmanagedType.U4)]publicuintdwTime;}[DllImport("user32.dll")]publicstaticexternboolGetLastInputInfo(refLASTINPUTINFOplii);publicstaticlongGetLastInputTime(){LASTINPUTINFOvLastInputInfo=newLASTINPUTINFO();vLastInputInfo.cbSize=Marshal.SizeOf(vLastInputInfo);if(!GetLastInputInfo(refvLastInputInfo))return0;returnEnvironment.TickCount-(long)vLastInputInfo.dwTime;}可以获取空闲时间。我的想法是能不能在A窗体启动的时候开启一个线程,然后这个线程就是监控空闲时间,并且如果时间达到了5分钟,那么我就返回A窗体。代码写的时候问题N多。呵呵。
解决方案六:
A、B、C窗体只能有一个窗体是在最前端的。写个类,让A、B、C都继承。不用分别起线程吧。
解决方案七:
嗯。我试试看,搞定结贴!没有多少分了。

时间: 2024-10-12 17:29:08

键盘鼠标空闲时间问题的相关文章

VB键盘鼠标无动作调用程序的尝试_vb

我想要实现的功能是,当键盘无输入.鼠标无移动或点击动作时调用程序.首先想到的是用钩子HOOK来获取键盘或者鼠标的动作,如果无动作时调用程序.我尝试的结果是HOOK来HOOK去总是有问题. 后来想到Windows的屏幕保护程序就是当键盘鼠标无动作时进入屏幕保护的,于是改变思路,想把程序做成这样的形式,键盘鼠标无动作,系统进入屏幕保护,然后检测系统是否运行屏幕保护程序,如果运行的话则调用程序.这种方式就是以屏幕保护程序作为中介,把检测键盘鼠标动作的工作交给屏幕保护程序来完成了.SystemParam

VB.NET全局键盘鼠标钩子[Vb.Net Hook](修正版)

原文有些BUG,因为这是段我从C#中转换而来的代码,所在最初的转换中因为两种语言的性质不同,所以无法完全兼容一些特性. 当然,现在的我已经完全有能力兼容两种语言的特性了,所以就重写了本段代码,将原代码中的事件检测,以及原代码中的KeyPress 时间无法检测输入字符大小写的BUG消除(在此感谢verywzm 同志) . 注意:本段代码如果想要在VS中运行,请将[工程属性] - [调试] - [启动 Visual Studio 宿主进程 ] 设置的勾去掉,或者使用 CTRL+F5 进行编译后调试!

【转载】synergy在Windows和Linux下使用全攻略(多台PC共享一套键盘鼠标)

synergy-project.org/nightlysyn 本攻略中介绍的是双机键盘鼠标共享,多机情况类似,学会双机的,其他情况自然就会了.     在工作中,有一台笔记本和一台个人PC,个人PC的键盘鼠标都相当难用,遂希望能找到一个能让我使用笔记本键盘和鼠标能直接实时操作另一台PC的办法,不负所望,发现了synergy这款软件.这款软件的好处在于:它可以跨操作系统使用,只要你的多台电脑是通过网络连接,在同一个网段(不同网段没有试验过),并且支持TCP/IP协议,那都可以轻松实现多台电脑的共享

Delphi建键盘鼠标动作纪录与回放

Windows提供API函数SetwindowsHookEx来建立一个Hook,通过这个函数可以将一个程序添加到Hook链中监视Windows 消息,函数语法为: SetWindowsHookEx(idHook: Integer; lpfn: TFNHookProc; hmod: HINST; dwThreadId: DWORD) 其中参数idHook指定建立的监视函数类型. 通过Windows MSDN帮助可以看到,SetwindowsHookEx函数提供15种不同 的消息监视类型,在这里我们

WinXP键盘鼠标键的设置技巧

  WinXP键盘鼠标键的设置技巧 1.点击电脑左下开始键,找到"控制面板". 主题包"> 2.进入"控制面板",找到"辅助功能选项". 3.进入"辅助功能选项",找到上排功能中的"鼠标",勾选"使用鼠标键".此时,你已经开启了鼠标键.如何设置鼠标键呢,找到"使用鼠标键"一侧的"设置". 4.勾选"使用快捷键",

键盘鼠标与主板不兼容引起的故障

  键盘鼠标与主板不兼容引起的一些故障,具体内容如下所示: 键盘与主板不兼容的问题主要是键盘和鼠标的品质不好,其芯片的数据取样速度与主板的接收不一致,在使用过程中就会不定期的出现键盘错误. 主要故障表现: ⑴.不定期的检查不到键盘或鼠标; ⑵.键盘或鼠标在使用过程中丢失; ⑶.还有就是鼠标在使用过程中没有箭头指示,但是能够正常操作或箭头丢失;  ⑷.有时候还会出现拖动鼠标时有图块伴随着鼠标箭移动. ⑸.机器休眠后,用机器唤醒后,鼠标无法使用,只能重新启动电脑或者把鼠标拔下来再插上去. 这种情况一

C#实现可捕获几乎所有键盘鼠标事件的钩子类完整实例_C#教程

本文实例讲述了C#实现可捕获几乎所有键盘鼠标事件的钩子类.分享给大家供大家参考,具体如下: using System; using System.Text; using System.Runtime.InteropServices; using System.Reflection; using System.Windows.Forms; namespace MouseKeyboardLibrary { /// <summary> /// Abstract base class for Mous

想创业者或学习者请进(注白天必须有空闲时间)

问题描述 本人现组团进行系统开发.有意者请联系qq:408997106msnlydison8888@hotmail.com 解决方案 解决方案二:必须有一定程序开发基础或者美工基础,并提交个人详细资料解决方案三:顶!解决方案四:白天必须有空闲??是不是指失业了--一般都是白天工作,晚上加班解决方案五:白天都在做公司的事..那有时间去做其它的事?解决方案六:对.白天必须有空闲时间,如果在职的就免了,谢谢解决方案七:我可以的,你给我多钱解决方案八:什么项目?解决方案九:学习的.没钱的.解决方案十:晕

戴尔PowerEdge R710跌至11700送原装键盘鼠标

编辑点评:戴尔 PowerEdge R710是一款双路2U机架式服务器,是面向中型Web开发等应用机型,作为PowerEdge2950 III的换代产品,R710采用了最新的智能技术,与上一代的服务器相比,不仅提升性能更高,而且功耗更低.推荐应用于数据中心的建设. 目前,http://www.aliyun.com/zixun/aggregation/33946.html">OEM厂商纷纷推出配备英特尔至强5500系列服务器进入市场,高性能和低成本特点成为企业购买的一个最大亮点.采用2U机架