Hi @ all !
Ich habe da mal eine Frage :
Wenn ich eine exe ( ein Compiliertes Script ) aufrufe, kann ich diese ja via cmd-line parametrisieren.
Dann wird diese abgearbeitet und beendet.
Ich möchte jetzt aber die Exe so schreiben, dass ich Diese einmal Starte z.b. parameter "-start"
Diese dann im Hintergrund weiter arbeitet, und wenn ich dann diese erneut aufrufe, Sie nicht erneut startet sondern einfach nur neue Parameter übernimmt z.b. "-parameter=5"
Ich habe hier mal etwas vorbereitet, das das vielleicht etwas genauer erklärt.
Hier mein Haupt Script welches die EXE aufrufen soll.
Spoiler anzeigen
HotKeySet("{ESC}", "Terminate")
HotKeySet("+1", "callFunc1") ; Shift+Number
HotKeySet("+2", "callFunc2") ; Shift+Number
HotKeySet("+q", "callFuncQ") ; Shift+Number
$subExe = "subEXE.exe"
[/autoit] [autoit][/autoit] [autoit]While 1
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]Sleep(100)
[/autoit] [autoit][/autoit] [autoit]ToolTip(@HOUR & ":" & @MIN & " ->Shift+Number drücken", 0, 0)
[/autoit] [autoit][/autoit] [autoit]WEnd
[/autoit] [autoit][/autoit] [autoit]Func callFunc1()
Run(@ScriptDir&"\"&$subExe & " -start=5","")
EndFunc ;==>callFunc
Func callFunc2()
Run(@ScriptDir&"\"&$subExe & " -param=2","")
EndFunc ;==>callFunc
Func callFuncQ()
Run(@ScriptDir&"\"&$subExe & " -exit","")
EndFunc ;==>callFunc
Func Terminate()
[/autoit] [autoit][/autoit] [autoit]Exit 0
EndFunc ;==>Terminate
und hier die EXE ( welche im Hintergrund laufen soll )
Spoiler anzeigen
$_IND_Start = "start"
$_IND_Parameter = "param"
$_IND_Exit = "exit"
Static $value = 0
[/autoit] [autoit][/autoit] [autoit]If $CMDLINE[0] > 0 Then
;MsgBox(0, "", "SubExe" & $CMDLINE[1])
;MsgBox(0, "", StringLeft($CMDLINE[1],StringLen($_IND_Start)+1))
;MsgBox(0,$_IND_Start,StringCompare(StringLeft($CMDLINE[1],StringLen($_IND_Start)+1), "-"&$_IND_Start))
;MsgBox(0,$_IND_Parameter,StringCompare(StringLeft($CMDLINE[1],StringLen($_IND_Parameter)+1), "-"&$_IND_Parameter))
;MsgBox(0,$_IND_Exit,StringCompare(StringLeft($CMDLINE[1],StringLen($_IND_Exit)+1), "-"&$_IND_Exit))
If StringCompare(StringLeft($CMDLINE[1], StringLen($_IND_Start) + 1), "-" & $_IND_Start) = 0 Then
MsgBox(0, $_IND_Start, $_IND_Start)
$value = StringTrimLeft($CMDLINE[1], StringLen($_IND_Start) + 2)
ElseIf StringCompare(StringLeft($CMDLINE[1], StringLen($_IND_Parameter) + 1), "-" & $_IND_Parameter) = 0 Then
MsgBox(0, $_IND_Parameter, $_IND_Parameter)
$value = StringTrimLeft($CMDLINE[1], StringLen($_IND_Parameter) + 2)
ElseIf StringCompare(StringLeft($CMDLINE[1], StringLen($_IND_Exit) + 1), "-" & $_IND_Exit) = 0 Then
MsgBox(0, $_IND_Exit, $_IND_Exit)
Exit 0
Else
MsgBox(0, "ELSE", "Else")
EndIf
Else
MsgBox(0, "", "SubExe" & $CMDLINE[0])
EndIf
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]MsgBox(0, "$value", $value)
[/autoit]ist natürlich nicht fertig ..
Zile ist es : Die exe mit "-Start=5" zu starten.
5 soll dann als fix wert hinterlegt werden.
Jedes mal, wenn dann die Exe mit "-parameter=..." aufgerufen wird soll z.b. zu dem Startwert die "...." ( hier 2) dazugezählt werden.
Ich möchte das ohne den IO-Steam machen .. und ohne das verwenden von ini-oder Registry
Warum die Frage:
Ich habe ein Programm welches via Parameter ( "-reuse-instance" ) genau diese Funktion bereitstellt und möchte wissen wie das geht und eventuell selber in einer anderen Anwendung nachbauen.
Finde ich nämlich richtig praktisch.
Jemand ne idee ==??