Andere Programme starten und überwachen

  • Ich möchte ein kleines Programm schreiben, dass wiederum drei andere Programme startet.
    Das erste Programm das gestartet werden soll ist eine einfach exe (Gamma Panel), das zweite Programm ist auch eine exe aber mit einem bestimmten Parameteraufruf (Steam - CS 1.6) und das dritte Programm ist ein Batchscript (*.bat).
    Das Programm Gamma Panel und das Batchscript sollen nur solange laufen wie das Programm (Spiel - CS 1.6) läuft (hl.exe).
    Sobald das Spiel beendet wird sollen auch die anderen beiden Anwendungen beendet werden und danach das AutoIt-Script.
    Wie kann ich das bewerkstelligen?
    Danke.

  • haste eine verknüpfung von cs 1.6 aufm desktop ?

    wenn ja gehe bitte mit rechtsklick drauf und sag mir welche parameter da sind ich glaube beim bereich ziel oder so

    bzw. ich brauche halt die parameter mit denen die hl2.exe gestartet werden soll ^^


    Im Prinzip würde ich es so lösen

    Spoiler anzeigen
    [autoit]

    ShellExecute("C:\Programme\Steam\Steamapps\deinname\cstrike1.6\hl2.exe", "Parameter")
    WinWaitActive("hl2.exe")
    Run("die exe")
    ShellExecute("blablabla.bat")
    WinWaitClose("hl2.exe")
    ProcessClose("blablabla.bat")
    ProcessClose("die.exe")
    Sleep(300)
    Exit

    [/autoit]


    aber natürlich nicht getestet denn ich habe weder cs noch steam noch deine .bat noch diese .exe also mal probieren ^^

  • Danke für die Hilfe.
    Leider klappt das Beenden nicht (weder der exe, noch der bat).

    [autoit]

    ShellExecute("C:\Gamez\Steam\Steam.exe", "-applaunch 10")
    Run("C:\Program Files\Gamma Panel\gapa.exe")
    ShellExecute("C:\Gamez\Steam\steamapps\[email='account@provider.tld'][/email]\counter-strike\DTS.bat")
    WinWaitClose("C:\Gamez\Steam\steamapps\[email='account@provider.tld'][/email]\counter-strike\hl.exe")
    ProcessClose("C:\Gamez\Steam\steamapps\[email='account@provider.tld'][/email]\counter-strike\DTS.bat")
    ProcessClose("C:\Program Files\Gamma Panel\gapa.exe")
    Sleep(300)
    Exit

    [/autoit]

    Wodran könnte das liegen?

  • Genau, also wird es so nicht gehen ;)
    Musst die Werte so abändern, wie es senden9 gesagt hat und schon funktioniert das Skript.

  • So geht es aber auch nicht oder habe ich etwas falsch verstanden?

    [autoit]

    ShellExecute("C:\Gamez\Steam\Steam.exe", "-applaunch 10")
    Run("C:\Program Files\Gamma Panel\gapa.exe")
    ShellExecute("C:\Gamez\Steam\steamapps\[email='pyranha9985@hotmail.com'][/email]\counter-strike\DTS.bat")
    WinWaitClose("Counter-Strike")
    ProcessClose("C:\Gamez\Steam\steamapps\[email='pyranha9985@hotmail.com'][/email]\counter-strike\DTS.bat")
    ProcessClose("C:\Program Files\Gamma Panel\gapa.exe")
    Sleep(300)
    Exit

    [/autoit]
  • Und Nochmal weils so schön ist ^^

    Spoiler anzeigen
    [autoit]

    ShellExecute("C:\Gamez\Steam\Steam.exe", "-applaunch 10")
    Run("C:\Program Files\Gamma Panel\gapa.exe")
    ShellExecute("C:\Gamez\Steam\steamapps\[email='account@provider.tld'][/email]\counter-strike\DTS.bat")
    WinWaitClose("hl.exe")
    ProcessClose("DTS.bat")
    ProcessClose("gapa.exe")
    Sleep(300)
    Exit

    [/autoit]
  • Ah, danke. Verstehe.
    Allerdings wird das Batchscript nicht beendet. Es wird dort ganz kurz angezeigt "Kann nicht beendet werden weil...". Leider ist das nur so kurz, dass ich die Meldung nicht richtig erkennen konnte.
    Kann man das Beenden erzwingen?

    Was auch sehr merkwürdig ist: Wenn ich gapa.exe manuell durch einen Doppelklick starte lädt er die passende ini. Wenn ich das Programm bei AutoIt starte nicht obwohl der gleiche Ort angegeben ist. Ich kann dann sogar einen neuen Eintrag erzeugen der nicht mehr zu finden ist wenn ich es wieder manuell starte. Wie kann das denn sein?

  • Du musst Das WorkinDir richtig angeben.
    ( "C:\Program Files\Gamma Panel\" )
    Bei Shellexecute ebenfalls.

  • Verstehe ich nicht.
    Das ist doch schon so angegeben.

    Ein Testscript mit nur dieser Zeile

    [autoit]

    ShellExecute("C:\Program Files\Gamma Panel\gapa.exe")

    [/autoit]

    führt zum gleichen seltsamen Phänomen.

  • Danke, jetzt hat es geklappt.

    Nur noch das Batchscript wird nicht beendet. Kann man das irgendwie erzwingen?

  • am besten kannst du das batch-srikpt editieren.
    mach mal rechstklick darauf und geh auf editieren.

    in der letzten Zeile kannst du dann einfach EXIT einfügen oder CLOSE oder QUIT
    orientiere dich nach dem ECHO im Batch skript. Dann weißt du, wo du dein EXIT reinsetztst. Außerdem solltest du vorher ein Backup machen ;)
    (falls was schief geht)

    Gruß Snify

  • Und noch ein Tipp zu Batchbearbeitung: Benutz Edit(Win+R und dann eingeben "Edit" dann Enter drücken) oder SciTe, sonst kann es sein das es nicht mehr geht.

    Projekte: Keine größeren (und fertigen)
    Gegen Internetzensur:
    https://epetitionen.bundestag.de/index.php?acti…s;petition=3860
    (Zeichnungsfrist abgelaufen)
    __________________________________________________________________________________________________________________________________
    Dieser Beitrag wurde bereits 264 mal editiert, zuletzt von »Fast2« (30. Februar 2009, 12:99)

  • Ich denke es liegt daran, dass dauernd eine Schleife durchgelaufen wird.
    Hier mal das Script das ich geschrieben habe:

    Kann man da noch etwas verändern damit es richtig beendet wird?
    Danke.