Autohotkey 自动热键FileGetTime访问屏幕截图

Autohotkey 自动热键FileGetTime访问屏幕截图,autohotkey,Autohotkey,这是我到目前为止写的剧本。它只是部分起作用。 我需要它采取一个屏幕截图的电脑只有在一个警报播放。当我运行脚本时,它会立即截屏,将其保存在正确的文件名和位置下,并关闭mspaint。然后每20秒循环一次,再循环一次。我的while命令有点问题,我就是搞不清楚。如何读取语法它应该保持在while循环中,直到经过的时间少于20秒。一旦文件被访问,退出while循环并继续无限循环 Loop { FileGetTime, LastTime, alarm.wav, A Elapsed :=

这是我到目前为止写的剧本。它只是部分起作用。 我需要它采取一个屏幕截图的电脑只有在一个警报播放。当我运行脚本时,它会立即截屏,将其保存在正确的文件名和位置下,并关闭mspaint。然后每20秒循环一次,再循环一次。我的while命令有点问题,我就是搞不清楚。如何读取语法它应该保持在while循环中,直到经过的时间少于20秒。一旦文件被访问,退出while循环并继续无限循环

Loop {

    FileGetTime, LastTime, alarm.wav, A
    Elapsed := A_Now - LastTime

    while (Elapsed > 20000){
        FileGetTime, LastTime, alarm.wav, A
        Elapsed := A_Now - LastTime
    }

    send {PrintScreen}
    Run, MSPaint
    WinWaitActive, Untitled - Paint
    Send ^v
    Sleep, 50
    Send ^s
    Sleep, 50
    Send c:\Screenshots\
    Send %A_Now%
    Sleep, 100
    Send {Enter}
    Sleep, 2000
    WinClose, ahk_exe MSPaint.exe


    Sleep, 20000

}

我通过放一个

MsgBox %Elapsed%
在while循环中。它计算秒而不是毫秒。将while公式从20000降到20,现在可以使用了

#NoEnv  ; Recommended for performance and compatibility with future AutoHotkey releases.
; #Warn  ; Enable warnings to assist with detecting common errors.
SendMode Input  ; Recommended for new scripts due to its superior speed and reliability.
SetWorkingDir %A_ScriptDir%  ; Ensures a consistent starting directory.

LastTime = 0

Loop 
{

    Elapsed = 30

    while (Elapsed > 20)
    {
        FileGetTime, LastTime, alarm.wav, A
        Elapsed := A_Now - LastTime
    }

    send {PrintScreen}
    Run, MSPaint
    WinWaitActive, Untitled - Paint
    Send ^v
    Sleep, 50
    Send ^s
    Sleep, 200
    Send c:\Screenshots\%A_Now%
    Sleep, 100
    Send {Enter}
    Sleep, 200
    WinClose, ahk_exe MSPaint.exe


    Sleep, 20000

}

我通过放一个

MsgBox %Elapsed%
在while循环中。它计算秒而不是毫秒。将while公式从20000降到20,现在可以使用了

#NoEnv  ; Recommended for performance and compatibility with future AutoHotkey releases.
; #Warn  ; Enable warnings to assist with detecting common errors.
SendMode Input  ; Recommended for new scripts due to its superior speed and reliability.
SetWorkingDir %A_ScriptDir%  ; Ensures a consistent starting directory.

LastTime = 0

Loop 
{

    Elapsed = 30

    while (Elapsed > 20)
    {
        FileGetTime, LastTime, alarm.wav, A
        Elapsed := A_Now - LastTime
    }

    send {PrintScreen}
    Run, MSPaint
    WinWaitActive, Untitled - Paint
    Send ^v
    Sleep, 50
    Send ^s
    Sleep, 200
    Send c:\Screenshots\%A_Now%
    Sleep, 100
    Send {Enter}
    Sleep, 200
    WinClose, ahk_exe MSPaint.exe


    Sleep, 20000

}

我想,获取文件的时间被算作访问时间。尝试删除
,A
否,该“A”告诉应用程序获取文件的“A”访问时间。很抱歉,它不是故意这样的。:)如果我删除“A”,它默认为“M”,并获取文件的修改时间。我不能使用修改过的时间,因为播放文件不会修改它。我也检查过,运行脚本不会影响最后的访问时间。在我关闭脚本后立即显示了4分钟前的访问时间。我想获取文件的时间被计算为访问时间。尝试删除
,A
否,该“A”告诉应用程序获取文件的“A”访问时间。很抱歉,它不是故意这样的。:)如果我删除“A”,它默认为“M”,并获取文件的修改时间。我不能使用修改过的时间,因为播放文件不会修改它。我也检查过,运行脚本不会影响最后的访问时间。在我关闭脚本后立即显示4分钟前的访问时间。