Я пытаюсь найти способ поэтапного резервного копирования папки каждые 15 минут, но только в том случае, если VS Code использовался/был в фокусе с момента последнего резервного копирования.
Есть ли у кого-нибудь идеи, как это можно сделать?
решение1
Относительно легко сделать в AutoHotkey... если вы раньше им не пользовались, то, возможно, вам также захочется воспользоваться SciTE4AutoHotkey, в котором есть подсветка синтаксиса.
Вот примерный план, как сделать что-то подобное... вам придется отладить код, чтобы заголовок окна работал правильно (используйте функцию Window Spy из значка в трее, чтобы получить соответствующий WinTitle для VS Code, и см. описание справки на WinTitle
). Вам также придется отладить оператор run, чтобы он запустил резервное копирование... вы можете запустить резервное копирование напрямую или как пакетный файл, и иногда проще заставить пакетный файл работать.
; Global variable to store last active window time
Global gLastActive
; This will call the Backup() function periodically..
SetTimer, Backup, % 15*60*1000 ; 15 minutes, in milliseconds
; This is the main loop, just sets a global if the window is active at any point
Loop {
If WinActive("VS Code") { ; this will need to be a valid WinTitle
gLastActive := A_TickCount
; MsgBox % "Window detected..." ; debug message for getting WinTitle correct
}
Sleep 1000
}
ExitApp ; Denote logical end of program, will never execute
; Backup function will run periodically and only back things up
; if VS Code was active since last time...
Backup() {
Static lastTick
; If the window was active after the last backup, run a backup this time
If (gLastActive>lastTick)
Run, C:\Target.cmd, C:\WorkingDir, Hide ; this will need to be corrected for syntax
lastTick := A_TickCount
}
Примечание:Это совершенно непроверенный код, просто дающий вам пример фреймворка, с которого можно, возможно, начать.