Ich versuche, eine Möglichkeit zu finden, einen Ordner alle 15 Minuten inkrementell zu sichern, aber nur, wenn VS Code seit der letzten Sicherung verwendet wurde/im Fokus war.
Hat jemand eine Idee, wie ich das machen könnte?
Antwort1
In AutoHotkey ist dies relativ einfach. Wenn Sie es noch nicht verwendet haben, können Sie sich auch SciTE4AutoHotkey mit Syntaxhervorhebung holen.
Hier ist eine grobe Skizze, wie man etwas Ähnliches machen kann: Sie müssten den Code debuggen, damit der Fenstertitel richtig funktioniert (verwenden Sie die Window Spy-Funktion über das Tray-Symbol, um einen geeigneten Fenstertitel für VS Code zu erhalten, und lesen Sie die Hilfebeschreibung unter WinTitle
). Sie müssten auch die Run-Anweisung debuggen, damit sie ein Backup ausführt: Sie können das Backup direkt oder als Batchdatei ausführen, und manchmal ist es einfacher, eine Batchdatei zum Laufen zu bringen.
; 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
}
Notiz:Dies ist völlig ungetesteter Code, der Ihnen lediglich ein Framework-Beispiel zum Ausprobieren und Starten bietet.