faceyao 发表于 2009-6-26 18:56:07

如何监测窗口从上次关闭至今有多少时间了

本帖最后由 faceyao 于 2009-6-26 23:43 编辑

如果“无标题—记事本”从上次关闭到现在超过了10分钟,则发送一个msgbox信息

msgbox(0,"","有10分钟没打开记事本啦")

请问这个代码怎么写,需要使用哪个函数?,谢谢

lin6163 发表于 2009-6-26 19:25:54

可以把当前的时间作为一个变量
再把要提示的时候的那个时间用数学函数对比相减
得出的就是你要的时间

faceyao 发表于 2009-6-26 19:39:29

能说具体代码吗

jhun 发表于 2009-6-26 19:52:36

本帖最后由 jhun 于 2009-6-26 22:04 编辑

dim $Time
If WinExists ("无标题—记事本")=1 Then
        While 1
        If WinExists ("无标题—记事本")=0 Then
                $Time=$Time+1
                If $Time=600 Then
                        MsgBox(0,"","有10分钟没打开记事本啦")
                        ExitLoop
                EndIf
        EndIf
        Sleep(1000)
        WEnd
EndIf

faceyao 发表于 2009-6-26 21:40:52

本帖最后由 faceyao 于 2009-6-26 21:47 编辑

4# jhun

你好,谢谢,但以上代码运行后一闪就退出了

jhun 发表于 2009-6-26 21:59:03

因为先检测要有记事本存在他才会继续执行,否则就退掉了

jhun 发表于 2009-6-26 22:04:30

本帖最后由 jhun 于 2009-6-26 22:05 编辑

dim $Time
While 1
If WinExists ("无标题 - 记事本")=1 Then
                MsgBox(0,"","开始了")
      While 1
      If WinExists ("无标题 - 记事本")=0 Then
                $Time=$Time+1
                If $Time=600 Then
                        MsgBox(0,"","有10分钟没打开记事本啦")
                        ExitLoop
                EndIf
      EndIf
      Sleep(1000)
      WEnd
EndIf
WEnd

jhun 发表于 2009-6-26 22:05:07

本帖最后由 jhun 于 2009-6-26 22:06 编辑

用后面这个,就不会闪一下退出了

faceyao 发表于 2009-6-26 22:24:08

本帖最后由 faceyao 于 2009-6-26 22:44 编辑

8# jhun

你好,的确可以了,万分谢谢!

pusofalse 发表于 2009-6-26 23:06:59

Dim $iTimer = 0, $sTitle = "无标题 - 记事本"

While 1
        Sleep(500)
        If Not WinExists($sTitle) Then
                If $iTimer Then
                        Msgbox(0, '', TimerDiff($iTimer) / 1000 & "s delayed.")
                        $iTimer = 0
                EndIf
                ContinueLoop
        EndIf
        If $iTimer = 0 Then $iTimer = TimerInit()
WEnd

menfan1 发表于 2009-6-27 09:16:18

用这个 TimerDiff比较好点:)呵呵
页: [1]
查看完整版本: 如何监测窗口从上次关闭至今有多少时间了