@SW_HIDE Fenster wieder in den Vordergrund bringen

  • Hallo Leute,

    ich habe ein vermutlich recht simples Problem an dem ich aber verzweifle. Die Suche hat mich leider nicht weitergebracht - ebenso wie die Hilfe.

    Ich habe ein CMD-Fenster mit dem Flag @SW_HIDE in den Hintergrund geschickt. Soweit so gut.

    Nur wie bringe ich das Fenster wieder in den Vordergrund?
    Bzw. ist es möglich das Fenster zu Beenden (wenn ich es nicht mehr brauch statt es in den Vordergrund zu holen und dann zu beenden)?

    Die entsprechene Code-Zeile ist:

    [autoit]


    Run('C:\AppFiles\decode.bat "' & GUICtrlRead($i_BATFile) & '"', 'C:\AppFiles'@SW_HIDE)

    [/autoit]

    Vielen Dank für Eure Hilfe!
    -srb-

  • Aber lösche ich damit nicht alle CMD-Prozesse die gerade auf dem jeweiligen Computer laufen?

    Ich denke ich muss das Fenster doch wieder in den Vordergrund holen - das wäre mir das liebste um es "sanft" zu beenden.

  • lies dir einfach die hilfe durch

    deine Frage erklärt nämlich das du 0 Ahnung von den befehlen hast

  • @srb:
    i.d.R beendet sich ein Dos-Fenster von alleine, sobald die .bat durchgelaufen ist...
    Das kannst Du ja prüfen, indem du mal das @SW_HIDE wegläßt.
    Edit:
    siehe Hilfe:
    Rückgabewert
    Erfolg: Die PID des Prozesses, der gestartet wurde.
    Fehler: Gibt 0 zurück und setzt @error auf ungleich Null.

    d.h. wenn Du einer Variable den Run-Befehl übergibst ($var = Run...... )
    enthält die $var die PID des Fensters. Dieses kannst Du mit ProcessClose($var) auch schließen

    @Ezzora:
    Nimm dich mal etwas zurück.
    Da Du anscheinden selbst entweder keine Ahnung, oder keine Lust hast zu helfen wäre es besser du läßt es gleich ganz sein.

    Zitat

    lies dir einfach die hilfe durch

    deine Frage erklärt nämlich das du 0 Ahnung von den befehlen hast

    Zitat

    Prozess exist oder ie das sich nennt
    Prozess delete usw

    MfG Schnuffel

    "Sarkasmus ist die niedrigste Form des Witzes, aber die höchste Form der Intelligenz."
    Val McDermid

    ein paar Infos ...

    Wer mehr als "nur" Hilfe benötigt, kann sich gern im Forum "Programmieranfragen" an uns wenden. Wir helfen in allen Fällen, die die Forenregeln zulassen.

    Für schnelle Hilfe benötigen wir ein ! lauffähiges ! Script, dass wir als Demonstration des Problems testen können. Wer von uns erwartet ein Teilscript erstmal lauffähig zu bekommen, der hat
    1. keine wirkliche Not
    2. keinen Respekt vor Menschen die ihm in ihrer Freizeit Ihre Hilfe anbieten
    3. oder ist einfach nur faul und meint wir coden das für ihn

    In solchen Fällen erlaube ich mir, die Anfrage einfach zu ignorieren. ;)

  • [autoit]

    $Run = Run('C:\AppFiles\decode.bat "' & GUICtrlRead($i_BATFile) & '"', 'C:\AppFiles'@SW_HIDE)

    [/autoit][autoit][/autoit][autoit]

    ;Zum beenden
    If ProcessExists($Run) Then
    ProcessClose($Run)
    EndIf

    [/autoit][autoit][/autoit][autoit]

    ;Zum zeigen/verstecken
    If ProcessExists($Run) Then
    WinSetState($Run, "", @SW_SHOW) ;Oder halt Hide
    EndIf

    [/autoit]

    Wenn ich mich nicht irre.
    Im Browser geschrieben :P

  • Vielen Dank für die Hilfe!
    Die CMD hatte sich nicht von selbst beendet, da am Ende ein 'PAUSE' eingebaut war.
    Aber ich habe jetzt einfach das Skript so umgeschrieben, dass es die benötigte Datei kopiert und die CMD sich danach selbst beendet.

    Da hätte ich ohne Deine Hilfe aber nie dran gedacht, dass CMDs sich ja eig. von selbst beenden - Danke Schnuffel!

    Wenn das mit dem selbst beenden doch nicht so funktioniert wie ich das gerne hätte verwende ich das Beispiel von Sen.

    Vielen Dank!