找回密码
 加入
搜索
查看: 3682|回复: 6

[系统综合] 代码合并,判断ERP系统空闲一段时间后强行关闭,避免占用户数

  [复制链接]
发表于 2013-12-24 18:06:32 | 显示全部楼层 |阅读模式
本帖最后由 290277275 于 2013-12-24 19:03 编辑

请高手合并脚本一和脚本二为一个文件:
两个脚本都测试过,可以正常使用,但不知道怎么循环在一起

条件为:当无鼠标键盘操作1分钟分关闭ERP或者当前活动窗口不是ERP1分钟但可能在做其它表格时也关闭;
        其它情况如在操作ERP时当前活动窗口肯定为ERP,所以这时不能关闭ERP

脚本一:
#include <Timers.au3>
While 1  
If WinActive("[CLASS:DCMS_TPAMain]") Then ; 检查窗口是否当前活动

Else
        Sleep(60000)
Call("guanji_")
EndIf
WEnd
Func guanji_()
        WinActivate("[CLASS:DCMS_TPAMain]", "")
        If WinActive("[CLASS:DCMS_TPAMain]") Then
                WinClose("[CLASS:DCMS_TPAMain]", "")
                Send("{ENTER}")
        EndIf
EndFunc  



脚本二:

#include <Timers.au3>
While 1
        If _Timer_GetIdleTime() > 60000 Then Call("guanji_")
        Sleep(1000)
WEnd
Func guanji_()
        WinActivate("[CLASS:DCMS_TPAMain]", "")
        If WinActive("[CLASS:DCMS_TPAMain]") Then
                WinClose("[CLASS:DCMS_TPAMain]", "")
                Send("{ENTER}")
        EndIf
EndFunc
发表于 2013-12-24 18:38:44 | 显示全部楼层
#include <Timers.au3>

While 1
        If Not WinActive("[CLASS:DCMS_TPAMain]") Then ; 检查窗口是否当前活动
                Call("guanji_")
                Sleep(60000)
        Else
                If _Timer_GetIdleTime() > 60000 Then Call("guanji_")
                Sleep(1000)
        EndIf
WEnd

Func guanji_()
        WinActivate("[CLASS:DCMS_TPAMain]", "")
        If WinActive("[CLASS:DCMS_TPAMain]") Then
                WinClose("[CLASS:DCMS_TPAMain]", "")
                Send("{ENTER}")
        EndIf
EndFunc   ;==>guanji_
 楼主| 发表于 2013-12-24 19:03:07 | 显示全部楼层
楼上师傅,我刚测试了,我在操作时也关了,看下以下条件,
条件为:当无鼠标键盘操作1分钟分关闭ERP或者当前活动窗口不是ERP1分钟但可能在做其它表格时也关闭;
        其它情况如在操作ERP时当前活动窗口肯定为ERP,所以这时不能关闭ERP
发表于 2013-12-24 20:21:11 | 显示全部楼层
楼上师傅,我刚测试了,我在操作时也关了,看下以下条件,
条件为:当无鼠标键盘操作1分钟分关闭ERP或者当 ...
290277275 发表于 2013-12-24 19:03



    试下
#include <Timers.au3>

Local $iTs = TimerInit(), $sTit = '[CLASS:DCMS_TPAMain]'
While 1
        If _Timer_GetIdleTime() > 60000 Then
                guanji_()
        Else
                If Not WinActive($sTit) Then
                        If TimerDiff($iTs) > 60000 Then guanji_()
                Else
                        $iTs = TimerInit()
                EndIf
        EndIf
        Sleep(100)
WEnd

Func guanji_()
        WinActivate($sTit)
        If WinActive($sTit) Then
                WinClose($sTit)
                Send('{ENTER}')
        EndIf
EndFunc   ;==>guanji_
 楼主| 发表于 2013-12-24 21:38:40 | 显示全部楼层
感谢版主,程序非常完美,对我们公司非常有用
发表于 2013-12-25 08:57:03 | 显示全部楼层
这个是什么东东Timer_GetIdleTime()
发表于 2013-12-25 08:57:55 | 显示全部楼层
为什么要用这个Local来定义呢
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-5-20 07:26 , Processed in 0.077006 second(s), 24 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表