WinClose Funktioniert nicht bei Autoit Programm.

  • Hi

    Folgendes Problem:

    Ich hab 2 Autoit Programme mit dem ersten kann man das 2te starten (inkl Parameter etc) und natürlich auch Schliessen.
    Aber genau das macht Probleme. Vorher hatte ich es mit ProcessClose() gemacht jetzt aber würde ich es mit WinClose gerne machen.
    Je nachdem wie oft man das startet wird der Titel vom Fenster angepasst zb "DB~Name1" "DB~Name2" (In der .ini vorgegeben)
    WinWaitActive() und WinSetState() Funktionieren wunderbar WinClose() und WinKill() dagegen überhaupt nicht.

    Wo könnte da das Problem liegen?

    Hauptprogramm jeweilige Code stelle:

    Die GUI die im 2ten Programm gestartet wird:


    AutoIt
    $dummy = GUICreate("DB~"&$Identifier,350,100,-1,-1,-1,-1)
    GUISetState(@SW_SHOW,$dummy)


    Wie man sehn kann hab ich auch schon versucht mit WinList() den Handle vom Fenster zu bekommen, klappt auch dennoch funktioniert WinClose() mit dem handle ebenfalls nicht.
    Info Das 2te Programm hat die Endung .dll nicht wundern handelt sich natürlich um eine autoit.exe da ich aber in meinem Ordner nur 1 .exe möchte hab ich die Endung geändert.

    Steam: Lachesis580

  • Hi,
    Es ist möglich in einem Programm mehrere parallel bedienbare Fenster zu haben, das ist normalerweise deutlich weniger fehleranfällig als verschiedene Programme zu benützen.
    Das die Fenster sich nicht schließen liegt warscheinlich einfach daran dass, das DB Script nicht auf das "CLOSE" Event reagiert, dies musst du mithilfe von GUIGetMsg() oder GUISetOnEvent() selbst übernehmen.

    mfg
    Zeitriss

  • Danke für die Antwort

    1.) Ja das ist ebenfalls in Verwendung in meinem Hauptprogramm. Das 2te Programm ist nur ein extra was man starten kann wenn man es braucht und im Hintergrund arbeitet so das man das Hauptprogramm Schliessen kann.

    2.) Vielen Dank habs mit GUISetOnEvent() gemacht. War mir nicht bewusst das eins von den 2 Sachen enthalten sein muss.

    Problem somit erledigt Danke. :thumbup:

    Steam: Lachesis580