Per Skript andere Skripte beenden

  • Moin Leute,

    ich habe 1 haupt Script worüber meine GUI läuft und ich habe 2 Subscripts welche vom GUI-Script aufgerufen werden. Nun kommt es aber hin und wieder vor das irgendwas verbugt in den Subscripts (Fenster öffnet sich zb plötzlich obwohl es nicht eingeplant ist) und damit die Scripts zum Stillstand kommen. nun habe ich auf meinen GUI-Script auch einen schließen Button welche dann alle beenden soll, aber dies funktioniert nicht so wirklich^^

    AutoIt
    func closebutton()
     processclose("irgendwas.exe")
     processclose("nochmairgendwas.exe")
     exit
    endfunc

    sowas wir PIDs gibt es nicht

    • Offizieller Beitrag

    Nun kommt es aber hin und wieder vor das irgendwas verbugt in den Subscripts (Fenster öffnet sich zb plötzlich obwohl es nicht eingeplant ist) und damit die Scripts zum Stillstand kommen.

    Schonmal etwas von Debugging gehört?
    Anstatt die anderen Scripte neu zu starten, solltest Du lieber erstmal deren Fehler finden und beseitigen.
    Einfach zu sagen, ich kenne/finde den Fehler nicht und mache es mir einfach (Script neu starten) ist u.U. eine gefährliche Einstellungsweise(Datenverlust).

  • wieso nicht? Run gibt doch die PID zurück!

    Und wo finde ich diese dann? Im Taskmanager werden mir zumindest keine angezeigt. Sorry wenn ich aufn Schlauch stehe.


    @Oscar ich will sie nicht neustarten. Ich will sie in dem Punkt komplett beenden. Großer Datenverlust kann dort nicht auftreten da es sich um eine einfache Installation zweier Programme handelt.
    Das Problem kommt nur zustande wenn zb plötzlich ein Fenster aufploppt welches halt nich berücksichtigt wurde. ich habe um die 150 Rechner damit zu bestücken und will halt nicht alles von Hand machen.
    Kann auch sein das ich dich vollkommen falsch verstanden habe^^

    2 Mal editiert, zuletzt von DanteMay (16. November 2016 um 08:37)

  • Was bitte ist ein Fenster, dass plötzlich aufpoppt? Meinst Du damit ein Fenster eines anderen Programms, dass Dein Gui Fenster als aktives Fenster ablöst?

    Dann solltest Du mal nachsehen wie man ein Fenster "Vorne" hällt...

    Gruß
    Peter

    Hinweise auf Suchmaschinen finde ich überflüssig - wer fragt hat es nicht gefunden oder nicht verstanden. Die Antwort gibt sich oftmals schneller als der Hinweis auf Dr. Goggle & Co.

    Ab 19-10-22 ergänzt um:

    Die Welt wird nicht bedroht von den Menschen, die böse sind, sondern von denen, die das Böse zulassen. (Albert Einstein)

  • Vielleicht habe ich mich auch doof erklärt^^
    Also die Subscripts arbeiten so wie sie sollen. Nur bei den Programmen welche von den Subscripts begleitet werden gibt es manchmal Probleme. Die Subs sind dafür da die Installation fortzuführen (Button Klicks und Optionen automatisiert) wenn aber im Programm plötzlich ein Fenster aufgeht welches ich vorher noch nie hatte (und dementsprechend nicht einkalkuliert hatte) können die Subs nicht weiterarbeiten und und somit "hängt" es. Nun will ich die Subs sowie das GUI-Script per closebutton schließen und genau dies funktioniert nicht.

    @autoBert PIDs sind doch vorhanden (eigentlich logisch) nur im Taskmanager nicht angezeigt (eigentlich unlogisch)

    meine function sieht jetz wie folgt aus

    AutoIt
    Func closebutton()
       Local $pid = ProcessExists("3.windows.exe")
       Local $pid2 = ProcessExists("4.ServicepackIBM.exe")
       ProcessClose($pid)
       ProcessClose($pid2)
       exit
     EndFunc

    Einmal editiert, zuletzt von DanteMay (16. November 2016 um 09:09)

  • Also ich automatisiere die Installation zwecks SCCM auch sehr viel. Aber ich hatte bis jetzt nur ein Programm bei dem es keinen direkten silent-switch bzw. andere Möglichkeit gab das zu installieren ohne mit Autoit das manuell durchzuklicken. Sag mal bitte wie das Programm genau heißt, denn ich bezweifel das IBM sowas nicht auch direkt drin hat. Dann sparst du dir die ganze Fensterklickerei.

    Edit: Wenn das hier mit deinem anderen Thread zusammenhängt, dann gehe ich mal davon aus, dass es sich im iAccess von IBM handelt. Dort gibt es silent Parameter und sogar Rückgabeparamete die mit Auotit dann sogar auswerten könntest wenn das willst.: http://www.ibm.com/support/knowle…lentinstall.htm

    Andy hat mir ein Schnitzel gebacken aber da war ein Raupi drauf und bevor Oscar das Bugfixen konnte kam Alina und gab mir ein AspirinJunkie.

  • Hab es jetzt ganz dämlich gelöst....nach jeder Installation wird ein Log geschrieben und dieser zeigt an an welcher stelle es ein Problem gab. Desweiteren wird der PC nach einer gewissen zeit automatisch runtergefahren und somit hatte ich den "closebutton" komplett raus genommen. Der Log wird auf einen Server geladen und kann vom EDV Team ausgelesen werden. sollte es bei einem Rechner Probleme geben muss man das Update händisch aufspielen.
    Der EDV Chef hat es so abgesegnet und damit ist das Projekt beendet.

    Sollte ich nochmal in so eine Situation kommen werde ich von Anfang an den Silent Switch nehmen^^
    Trotzdem danke an alle für die tolle Hilfe :)

  • Zwar bissel off-topic, aber ihr habt ein sehr seltsames EDV Team......

    Andy hat mir ein Schnitzel gebacken aber da war ein Raupi drauf und bevor Oscar das Bugfixen konnte kam Alina und gab mir ein AspirinJunkie.