C# winform 判断鼠标是否移动

gsq_0912 2011-03-24 02:46:37
我现在在做一个winform程序,想在鼠标不动后的3分钟,窗体跳转到屏幕保护窗体,请问,如何判断鼠标是否移动过?谢谢!!
...全文
819 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
bdmh 2011-03-24
  • 打赏
  • 举报
回复
看Application.Idle的用法
  • 打赏
  • 举报
回复

//需要一点逻辑,大致就是这样
Point oldP=new Point();
Point p=new Point();

new Thread(delegate()
{
int i=0;
oldP=//
while(true)
{
i++;
if(i==1000&&oldP==p)
{
//....
break;
}

System.Threading.Thread.Sleep(1000);//1S
p=Mouse.哪啥,你查下。。。
//
}
}).Start();
gsq_0912 2011-03-24
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 wangsunjun 的回复:]
楼上正解,
实例化一个Point,
赋值
开个线程
一个循环判断是否变了

循环里Sleep(1000)
1S*你要的时间次循环Point值还没改变,说明鼠标没动
Excute你要的东西
OK
[/Quote]
之前没有这做过这方面的东西,能否贴出代码,谢谢!!
gsq_0912 2011-03-24
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 wanghui0380 的回复:]
不知道你监控你自己的程序,还是系统

如果是自己的程序,直接在你的程序里截获消息循环

如果你是指系统,那么请你hook系统的消息循环
[/Quote]
是我自己的程序啦
sfxdawn 2011-03-24
  • 打赏
  • 举报
回复
lz,建議你先出去抽支煙,冷靜冷靜,或許回來就有辦法了。
wanghui0380 2011-03-24
  • 打赏
  • 举报
回复
不知道你监控你自己的程序,还是系统

如果是自己的程序,直接在你的程序里截获消息循环

如果你是指系统,那么请你hook系统的消息循环
  • 打赏
  • 举报
回复
楼上正解,
实例化一个Point,
赋值
开个线程
一个循环判断是否变了

循环里Sleep(1000)
1S*你要的时间次循环Point值还没改变,说明鼠标没动
Excute你要的东西
OK
tanktang811010 2011-03-24
  • 打赏
  • 举报
回复
在开个线程监控。

110,552

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧