Hi,
ich schreibe gerade an einem Tool, dass mir mehrere Instanzen eines Programms aus verschiedenen Ordnern nach einander startet, eine bestimmte Zeit abwartet, sie dann wieder schließt und das nächste startet.
Das funktioniert auch alles. Beim Start meines Tools müssen zunächst die Ordner der Instanzen und die Wartezeit angegeben werden.
Mein Problem ist eigentlich nur, dass man im Moment noch auf eine bestimmte Anzahl von Instanzen festgelegt ist. Ich würde also gern die Anzahl vorher eingeben lassen und dann eine Schleife ausführen. Allerdings weiß ich nicht so recht, wie ich das bewerkstelligen soll, da ich ja dann vorher eine dynamische Anzahl von Variablem (die jeweiligen Programmpfade) eingeben lassen muss.
Hier mal der Code
;Ini
$IniFile = @ScriptDir & '\mcb.ini'
;load vars
$mc1 = IniRead($IniFile , "MC locations" , "mc1", "Not found")
$mc2 = IniRead($IniFile , "MC locations" , "mc2", "Not found")
$mc_run = IniRead($IniFile , "Time" , "mc_run", "Not found")
$dmin = IniRead($IniFile , "Time" , "dmin", "Not found")
$dmax = IniRead($IniFile , "Time" , "dmax", "Not found")
;get locations
$mc1 = Inputbox("MC-Batchrunner","Directory of program instance No. 1 (Example: c:\program1):", $mc1)
$mc2 = Inputbox("MC-Batchrunner","Directory of program instance No. 2 (Example: c:\program2):", $mc2)
;Time
$mc_run = Inputbox("MC-Batchrunner","How long shall any program run (in minutes)?", $dmin)
$dmin = Inputbox("MC-Batchrunner","Enter the minimum delay between the program runs (in minutes):", $dmin)
$dmax = Inputbox("MC-Batchrunner","Enter the maximum delay between the program runs (in minutes):", $dmax)
;save vars
IniWrite($IniFile , "MC locations" , "mc1" , $mc1)
IniWrite($IniFile , "MC locations" , "mc2" , $mc2)
IniWrite($IniFile , "Time" , "mc_run" , $mc_run)
IniWrite($IniFile , "Time" , "dmin" , $dmin)
IniWrite($IniFile , "Time" , "dmax" , $dmax)
;mc1
FileChangeDir($mc1)
Run($mc1 & "\program.exe","",@SW_MINIMIZE)
Sleep($mc_run*60000)
WinKill("program", "")
;wait
$T = Int(Random(($dmax-$dmin)*60000) + ($dmin*60000))
Sleep($T)
;mc2
FileChangeDir($mc2)
Run($mc2 & "\program","",@SW_MINIMIZE)
Sleep($mc_run*60000)
WinKill("program", "")
;finished
MsgBox(64, "MC-Batchrunner", "Done!")
Alles anzeigen
Außerdem wüßt ich gern, ob es möglich ist mehrere Variablen in einer Inputbos einzugeben. (ist aber nicht so wichtig)
Ich beschäftige mich erst seit kurzem mit AutoIt.
Daher wär ich für jede Hilfe dankbar.