290277275 发表于 2013-12-24 18:06:32

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

本帖最后由 290277275 于 2013-12-24 19:03 编辑

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

条件为:当无鼠标键盘操作1分钟分关闭ERP或者当前活动窗口不是ERP1分钟但可能在做其它表格时也关闭;
      其它情况如在操作ERP时当前活动窗口肯定为ERP,所以这时不能关闭ERP
脚本一:
#include <Timers.au3>
While 1
If WinActive("") Then ; 检查窗口是否当前活动

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



脚本二:

#include <Timers.au3>
While 1
        If _Timer_GetIdleTime() > 60000 Then Call("guanji_")
        Sleep(1000)
WEnd
Func guanji_()
        WinActivate("", "")
        If WinActive("") Then
                WinClose("", "")
                Send("{ENTER}")
        EndIf
EndFunc

afan 发表于 2013-12-24 18:38:44

#include <Timers.au3>

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

Func guanji_()
        WinActivate("", "")
        If WinActive("") Then
                WinClose("", "")
                Send("{ENTER}")
        EndIf
EndFunc   ;==>guanji_

290277275 发表于 2013-12-24 19:03:07

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

afan 发表于 2013-12-24 20:21:11

楼上师傅,我刚测试了,我在操作时也关了,看下以下条件,
条件为:当无鼠标键盘操作1分钟分关闭ERP或者当 ...
290277275 发表于 2013-12-24 19:03 http://www.autoitx.com/images/common/back.gif


    试下#include <Timers.au3>

Local $iTs = TimerInit(), $sTit = ''
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_

290277275 发表于 2013-12-24 21:38:40

感谢版主,程序非常完美,对我们公司非常有用

lxwlxwayy 发表于 2013-12-25 08:57:03

这个是什么东东Timer_GetIdleTime()

lxwlxwayy 发表于 2013-12-25 08:57:55

为什么要用这个Local来定义呢
页: [1]
查看完整版本: 代码合并,判断ERP系统空闲一段时间后强行关闭,避免占用户数