ich habe einen Timer der funktioniert soweit.
Allerdings wird der Prozess, der gestartet wurde, offenbar so nicht erkannt.
Der Timer startet dann alle 2 Minuten neu, obwohl der von ihm gestartete Prozess noch läuft.
RunWait greift hier offenbar nicht korrekt.
Der Process Name lautet= FreeFileSync.exe
Wie könnte ich die Abfrage des Process Namens in den Timer einbinden um zu verhindern das bei laufender Operation der Timer neu startet?
#NoEnv ; Keine Umgebungsvariablen nutzen
#NoTrayIcon ; Das AHK Symbol wird nicht angezeigt
SetWorkingDir %A_ScriptDir% ; Dateioperationen finden im Scriptverzeichnis statt, falls kein Pfad angegeben wird!
#SingleInstance force ; Das Skript wird bei Neustart ohne Nachfrage ersetzt
#Persistent ; Das Skript beibt auch nach einem Return aus einem Timer aktiv.
; ------------------- Variablen für die Sicherungsanweisungen ---------------------------------------
; WICHTIG: Variablen sind grundsaetzlich zuerst im Skript anzulegen!!!! -----------------------------
global LW_R := "R:\###_Testdatei_Synchronisation---Nicht-Loeschen.txt"
global TIMER := 1000 * 60 * 2 ; Ausfuehrung alle 2 Minuten
RemoveDrive := "RemoveDrive64.exe" ; Eintrag des Pfades zur Datei nun mit: "%RemoveDrive%"
Stammverzeichnis := "C:\Autostart\" ; Aufruf des Pfades mit "%Stammverzeichnis%"
ProgPfad := "C:\Autostart\FreeFileSyncPortable\FreeFileSync.exe" ; Aufruf des Programmes mit "%ProgPfad%"
Spiegelung_USB_R := "C:\Autostart\Software_zu_USB_R---Server7.ffs_gui" ; Eintrag des Pfades zur Datei nun mit: "%Spiegelung_USB_R%"
SetTimer, Verbinden, % TIMER
Verbinden:
; Wenn das Laufwerk vorhanden ist, starte Spiegelung
if (FileExist(LW_R))
RunWait, "%ProgPfad%" "%Spiegelung_USB_R%",, ; Fuehre den Abgleich der Ordner durch
RunWait, "%RemoveDrive%" r: -f ,,hide - Das Laufwerkes nach dem Spiegeln auswerfen!!!
ExitApp
; Wenn das Laufwerk nicht vorhanden ist, starte Neu
if (ErrorLevel)
return
return
Verbinden:
; Wenn das Laufwerk vorhanden ist, starte Spiegelung
if (FileExist(LW_R))
RunWait, "%ProgPfad%" "%Spiegelung_USB_R%",, ; Fuehre den Abgleich der Ordner durch
RunWait, "%RemoveDrive%" r: -f ,,hide - Das Laufwerkes nach dem Spiegeln auswerfen!!!
ExitApp ; <<<<< hier ist bedingungslos Schluss
; Wenn das Laufwerk nicht vorhanden ist, starte Neu
if (ErrorLevel)
return ; <<<<< das folgende Statement ist ohnehin ein Return
return
Ich grüße Dich...
Ja, wahrscheinlich ein Problem des unzureichenden Verständnisses meinerseits.
Das Script soll simpel nur prüfen, ob das entsprechende (USB) Laufwerk vorhanden ist, und dann eben weitere Aktionen ausführen.
Wenn das Laufwerk nicht vorhanden ist, soll der Timer wieder starten.
Verbinden:
; Wenn das Laufwerk vorhanden ist, starte Spiegelung, ansonsten tue nichts
if !(FileExist(LW_R))
Return
SetTimer, Verbinden, Off ; Timer abschalten
RunWait, "%ProgPfad%" "%Spiegelung_USB_R%",, ; Fuehre den Abgleich der Ordner durch
RunWait, "%RemoveDrive%" r: -f ,,hide - Das Laufwerkes nach dem Spiegeln auswerfen!!!
ExitApp ; ???