AutoIt GUI-Fenster verstecken

  • Ich brauche mal ein bisschen Hilfe...
    Ich habe drei AutoIt Scripts erstellt, die bei entsprechenden Bedingungen hintereinander aufgerufen werden.
    Das erste Script läuft wie gewünscht. Wird danach ein weiteres aufgerufen, erscheint ein kleines, leeres AutoIt
    Fenster auf dem Bildschirm, was nicht gewollt ist.
    Ich habe bereits das Forum durchstöbert, aber nicht gefunden, was hilfreich sein könnte.
    Ausprobiert habe ich bereits:
    GUISetState(@SW_HIDE)

    das scheint es nicht zu sein, da das Fenster immer noch auftaucht. Was mich etwas verwundert ist, dass es erst auftaucht, wenn nach der Abarbeitung
    eines AutoIt Scripts ein weiteres aufgerufen wird.
    Starte ich das Script manuell, kommt das Fenster nicht.

    Hat jemand eine Lösung dafür?

  • Hi,
    ich habe das jetzt auch noch einmal mit WinSetState ausprobiert, auch ohne Erfolg.
    Das Fenster heißt, wie Du sehen kannst, "AutoIt v3" daher meine Vermutung, dass es das GUI Fenster sein wird?

    [autoit]


    #Region ;**** Directives created by AutoIt3Wrapper_GUI ****
    #AutoIt3Wrapper_icon=..\..\SKM\skillsoft.ico
    #AutoIt3Wrapper_outfile=java_setup.exe
    #AutoIt3Wrapper_Compression=0
    #AutoIt3Wrapper_UseUpx=n
    #AutoIt3Wrapper_UseX64=n
    #AutoIt3Wrapper_Res_Language=1031
    #AutoIt3Wrapper_Run_AU3Check=n
    #EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****

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

    #RequireAdmin
    WinSetState("AutoIt v3","", @SW_HIDE)
    Opt("TrayIconHide", 1)
    $PID = Run("javaSETUP.exe /qn")
    SplashImageOn("Bitte warten!", "pic\2.jpg",800,600,-1,-1,1)
    While ProcessExists($PID)
    Sleep(100)
    WEnd
    SplashOff()
    run("checkx\java\chk.exe")

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

    Exit

    [/autoit]

    Gruß
    charly

  • Es soll keine GUI erstellt werden. Es soll nur eine Java Installation gestartet werden und dabei werden Testflächen in Form von JPG's angezeigt.
    Ich habe das Fenster mal als "GUI" bezeichnet, Es geht dabei um das oben beschriebene Fenster "AutoIt v3" welches sichtbar wird, was es natürlich nicht soll.

  • Das Fenster wird von dem Script oben verursacht.
    Das Script wird durch ein anderes Programm aufgerufen., dann taucht besagtes kleines, leeres Fenster auf.
    Starte ich das Script direkt kommt das Fenster nicht.

  • Keiner mehr eine Idee für eine Lösung?
    Ich selber habe kaum Programmierkenntnisse und im Moment kann ich auch nicht genau sagen, was dort genau passiert.

    Wo liegt denn der unterschied, ob ich die EXE direkt starte oder durch separates Programm, welches die EXE startet.
    Das unerwünschte Fenster ist als hätte ich in dem Skript ein GUI ohne Inhalte gestartet. was ich ja nicht habe. Wenn ich das Fenster während des Prozesses schließe, endet auch das Script. Minimiere ich das Fenster, minimiert sich auch das SplashImage, was ich im Script aufrufe.

    Wenn aber der Inhalt, also das SplashImage außerhalb des Fensters liegt, dann verstehe ich erst recht nicht, warum ein Fenster auftaucht.

    Ich werde natürlich selber weiter probieren... Ich kann mir aber nicht vorstellen, dass dieses Phänomen nur bei mir auftritt.

  • Ich habe drei AutoIt Scripts erstellt, die bei entsprechenden Bedingungen hintereinander aufgerufen werden.


    Solange du nicht die 3 Skripte einstellst kann man das Problem nicht nachvollziehen, alles andere wäre Rate mal it Rosenthal.
    Ein Versuch meiner Glaskugel: "Tritt das Problem auch bei den kompilierten EXEn auf?"

    mfg (Auto)Bert

  • Ich Poste mal alle drei Scripts.
    Ja, das tritt auch bei der Ausführung der EXE auf.

    Zu erst wird über eine Kommerzielle Software geprüft, ob eine bestimmte Software bereits installiert ist. Ist sie es nicht, startet Script1
    Danach wird geprüft, ob Java auf dem Rechner installiert ist. Ist es nicht installiert, startet Script 2.
    Zuletzt wird dann geprüft, ob der FlashPlayer installiert ist. Ist er es nicht, startet Script 3.

    Die Scripte werden von der Software als EXE ausgeführt, welche die Prüfungen übernimmt.
    AutoIt Scripte gehen am Ende zurück zu dieser Software "chk.exe"

    Script 1:

    [autoit]


    #RequireAdmin
    #Region ;**** Directives created by AutoIt3Wrapper_GUI ****
    #AutoIt3Wrapper_icon=skillsoft.ico
    #AutoIt3Wrapper_outfile=skm.exe
    #AutoIt3Wrapper_UseX64=n
    #EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****

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

    BlockInput(1)
    Opt("TrayIconHide", 1)
    $PID = Run("SKM_.exe /verysilent")
    SplashImageOn("Course Manager","pic\1.jpg", 800,600,-1,-1,1)
    While ProcessExists($PID)
    Sleep(100)
    WEnd
    SplashOff()
    BlockInput(0)
    Exit

    [/autoit]

    Script 2:

    [autoit]


    #Region ;**** Directives created by AutoIt3Wrapper_GUI ****
    #AutoIt3Wrapper_icon=..\..\SKM\skillsoft.ico
    #AutoIt3Wrapper_outfile=java_setup.exe
    #AutoIt3Wrapper_Compression=0
    #AutoIt3Wrapper_UseUpx=n
    #AutoIt3Wrapper_UseX64=n
    #AutoIt3Wrapper_Res_Language=1031
    #AutoIt3Wrapper_Run_AU3Check=n
    #EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****

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

    #RequireAdmin
    BlockInput(1)
    WinSetState("AutoIt v3","", @SW_MINIMIZE)
    Opt("TrayIconHide", 1)
    $PID = Run("javaSETUP.exe /qn")
    SplashImageOn("Bitte warten!", "pic\2.jpg",800,600,-1,-1,1)
    While ProcessExists($PID)
    Sleep(100)
    WEnd
    SplashOff()
    run("chk.exe")
    BlockInput(0)
    Exit

    [/autoit]

    Script 3:

    [autoit]


    #Region ;**** Directives created by AutoIt3Wrapper_GUI ****
    #AutoIt3Wrapper_icon=..\..\SKM\skillsoft.ico
    #AutoIt3Wrapper_outfile=instflash.exe
    #AutoIt3Wrapper_UseX64=n
    #EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
    #RequireAdmin

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

    BlockInput(1)
    Opt("TrayIconHide", 1)
    $PID = Run("Flash10ie.exe -install")
    SplashImageOn("Bitte warten!", "pic\3.jpg", 800,600,-1,-1,1)
    While ProcessExists ($PID)
    sleep(100)
    WEnd
    SplashOff ()
    Run("checkx\flash\chk.exe")
    BlockInput(0)
    Exit

    [/autoit]
  • Ich benötige drei verschiedene Scripts, weil jedes für eine Komponente gestartet wird. Ist eine bereits installiert, wird auch keine Installation benötigt. so kann es sein, dass es unter Umständen dazu kommt, dass Script 1 und 3 gestartet wird, oder 2 und 3 oder 1 und 2 oder nur 2 je nachdem, was auf dem System gefunden wird.

    Gruß
    charly

  • Das kannst du doch trotzdem alle in eins packen, ich wüsste nicht wo da das problem ist.

  • Darüber habe ich natürlich auch nachgedacht, allerdings ist die Verwendung der Software, die Prozesse und die Installation von Komponenten prüft erwünscht.
    Ich habe mir überlegt, die SplashImageOn raus zu nehmen und das ganze in ein GUI Fenster zu übertragen. Dann dürfte das Problem schon einmal erledigt sein und andererseits könnte ich zudem einen Fortschrittsbalken mit einbauen. Nun wollte ich eigentlich nicht so tief in das Thema AutoIt einsteigen.

    Gruß
    charly