Soll die CMD-Datei alle x Minuten ausgeführt werden, wenn die App verwendet wird?

Soll die CMD-Datei alle x Minuten ausgeführt werden, wenn die App verwendet wird?

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.

verwandte Informationen