0
ここまでは私が書いたスクリプトです。それは部分的にしか機能しません。 アラームが再生された後でなければ、PCのスクリーンショットを撮る必要があります。スクリプトを実行すると、すぐにスクリーンショットが撮られ、適切なファイル名と場所に保存され、mspaintが閉じます。その後、20秒ごとにループし、別のループを実行します。私の間に何かが間違っているだけではわかりません。 Elapsedが20秒未満になるまでwhileループに留まる構文をどのように読んでいますか?その後、ファイルにアクセスするとwhileループを終了し、無限ループを続行します。AutoHotkey FileGetTime Access ScreenShot
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
}
ファイルの取得時間は、** A ** ccessと数えられます。 'A 'を削除してみてください – wOxxOm
いいえ、" A "はファイルの" A "アクセス時刻を取得するようにアプリケーションに指示します。 –
申し訳ありませんが、そのように外れることを意味しませんでした。 :) "A"を削除すると、デフォルトで "M"になり、ファイルの変更時刻が取得されます。ファイルを再生しても変更されないため、修正時間を使用することはできません。また、私は最後のアクセス時間に影響しないスクリプトを実行してチェックしました。私がスクリプトを閉じた直後のアクセス時間に4分前に示されました。 –