akk08 发表于 2013-8-22 12:11:37

检测鼠标活动 『已解决』

本帖最后由 akk08 于 2013-8-24 21:30 编辑

请教各位大大,电脑鼠标5分钟无操作,就会自动关机,如何防止?
用_Timer_GetIdleTime函数?如何只检测鼠标活动?求解

MaGiCmAn 发表于 2013-8-22 13:40:33

无操作是指鼠标没有移动还是没有点击还是既没有移动也没有点击?

akk08 发表于 2013-8-22 15:34:50

无移动也无点击

akk08 发表于 2013-8-22 15:37:22

回复 2# MaGiCmAn


    就是无移动也无点击,办公电脑貌似只判断鼠标操作

akk08 发表于 2013-8-22 15:37:46

回复 2# MaGiCmAn


    就是无移动也无点击,办公电脑貌似只判断鼠标操作

ghostsho 发表于 2013-8-22 15:42:58

这个是不是电脑的电源管理里设置下就可以了
没必要还用程序把

akk08 发表于 2013-8-22 20:53:27

回复 6# ghostsho


    要能改我早改了,没管理员权限

MaGiCmAn 发表于 2013-8-22 22:04:15

用MouseGetPos检测鼠标有没有移动,用 _IsPressed检测鼠标有没有点击。
建议还是定时用MouseMove模拟移动鼠标吧(微量移动一点就行),也不影响实际操作,还省得那么麻烦。

akk08 发表于 2013-8-23 22:34:52

回复 8# MaGiCmAn


    微量移动?新手,目前只会移动到特定坐标,如何实现,谢谢!

MaGiCmAn 发表于 2013-8-23 22:47:53

类似$apos=MouseGetPos检测鼠标当前位置,MouseMove($apos+1,$apos+1)移动一个像素。写个无线循环(white 1),每4分钟一次就可以了吧?
实在要检测的话就用这个吧,献丑了:#include <Misc.au3>
$daley=0        ;计时
While 1
        $aPos = MouseGetPos()
        Sleep(200)
        $bPos = MouseGetPos()
If $aPos<>$bPos Or $aPos<>$bPos Or _IsPressed(01)=1 Or _IsPressed(02)=1 Or _IsPressed(03)=1 Then        ;如果鼠标有动作就重置计时
        $daley=0
        MsgBox(1,"捕捉到",MouseGetPos(2))
EndIf
$daley+=200
If $daley=240000 Then                        ;计时达到4分钟就跳出循环关机
MouseMove($apos+1,$apos+1)
EndIf
WEnd
我也是新手

MaGiCmAn 发表于 2013-8-23 22:48:57


MsgBox(1,"捕捉到",MouseGetPos(2))
这行删掉

akk08 发表于 2013-8-24 00:44:19

回复 10# MaGiCmAn


    万分感谢,我试一试。

xz00311 发表于 2013-8-24 01:28:09

不知道结果行不性啊

akk08 发表于 2013-8-24 14:07:09

回复 10# MaGiCmAn


    11行那个是 $delay+=200?   
   不是 $delay=+200

akk08 发表于 2013-8-24 14:19:56

回复 11# MaGiCmAn


    啊哦,就是+=,可是程序运行貌似不管用
页: [1] 2
查看完整版本: 检测鼠标活动 『已解决』