鼠标不动10分钟,则自动从一个WINFORM跳到另一个WINFORM,怎么实现?
求高手给个思路 小弟感激不尽!!! --------------------编程问答-------------------- timer --------------------编程问答-------------------- 鼠标每动一下,就出发事件MouseMove,在这个事件里面触发time事件,开始计时每到10分钟,检查一下鼠标的坐标,是否和十分钟以前一样
如果一样,就跳转。
呵呵,鼠标坐标一致的情况太少了。
这是我想到得,没有尝试,楼主可以试试 --------------------编程问答-------------------- windows api函数GetLastInputInfo参考
http://blog.csdn.net/jinjazz/archive/2008/02/21/2110620.aspx --------------------编程问答-------------------- 可以考虑使用Application.Idle 事件。 --------------------编程问答-------------------- 设一个全局变量:int t = 0;
在窗体MouseMove事件里:t = 0;
在timer_Click事件里:(timer的interval属性:1000)
t++;
if(t > 60 * 10)
{
转换界面();
} --------------------编程问答-------------------- 这样做本本身就会消耗系统资源,因为如果你要确定鼠标不动的时间,就要记住每时每刻鼠标停留的时间,也就是一直在调用定时器,如果真想做就定义个函数循环调用定时器,确定开始时间,如果结束时间过了10分钟,就调用新窗口程序,vs中有现成的定时器控件?到时间调出新窗口!主要的工作应该是判断鼠标位置的变化,方法一种是通过坐标来确定,但这样只是去顶鼠标位置,相同位置鼠标可以点击,这样如果接受就这样做;如果不可以就要判断鼠标事件全不发生........加油! --------------------编程问答--------------------
嗯,就是这样的. --------------------编程问答--------------------
就是这个意思,我补充下
鼠标动的话就触发事件MouseMove,那你定义一个全局变量,在MouseMove中设置变量归零,定义一个全局Timer(不能是Forms.Timer,必须是Thread.Timer或者直接用Thread),每秒一次循环将全局变量+1,并且判断变量是否为600,如果是则则打开另一个窗体
突然想到如果在MouseMove事件中设置变量为当前时间,然后在Timer中每次循环用当前时间和变量比较也可以实现,并且相对于前面的方法时间的精确度更高点。 --------------------编程问答-------------------- 循环的时间间隔为1000毫秒 --------------------编程问答-------------------- 添加计时器,程序启动时计时器启动,鼠标move计数器清零.计时器到了十分钟再处理后面的事情.
补充:.NET技术 , C#