Wenn ereignis eintritt, flag setzen ... in Do-Until-Schleife?

  • Hey, ich habe unten genannte funktion.
    jetzt hätte ich gerne *g* ...

    also sofern $install = 1 ist, soll diese funktion erstmal nur durchlaufen werden, wenn nicht, dann wirds quasi direkt übersprungen.
    darin soll 1 oder mehrere prozesse gesucht und geschlossen werden, aber es MUSS diesen prozess nicht geben, es kann jedoch.

    wenn nun mind. 1 prozess gefunden wird, soll, nachdem alle prozesse geschlossen wurde, eine msg-box aufgerufen werden.
    gibt es keinen prozess, muss natürlich keine msg-box erscheinen, bzw soll/darf nicht.

    wenn ich jetzt aber ganz normal n flag setze (If $PIDI <> 1 then $flag = 1) würde diese ja beim nächsten schleifendurchlauf wieder verändert werden, und, wenn alle prozesse geschlossen sind, $PIDI = 0 sein und $flag dementsprechend auch nicht auf 1 gesetzt werden, oder?
    wo ich das grad so schreibe, denk ich mir, könnte das doch gehen .... oder hat wer ne andere idee ?

    [autoit]


    ;install/error-msg-killer
    If $install = 1 Then
    Do
    $PIDI = ProcessExists("R6setdefaultreg.exe")
    ProcessClose($PIDI)
    Until $PIDI = 0
    IniWrite(@ScriptDir & "\" & $ini, "Close Windows after Start", "Install/Error", "0")

    Else
    EndIf

    [/autoit]
  • [autoit]

    If $install =1 Then
    Do
    $PIDI = ProcessExists($process) then
    If $PIDI <> 0
    ProcessClose($process)
    Else
    $flag = 1
    EndIf
    Until $PIDI <> 0
    EndIf

    [/autoit]

    So würde ich das lösen wenn ich deine Problematik richtig verstanden habe =)