Autoit 2 Gui erstellen und Schliessen

  • Hallo ich bin grade ein Tool am bauen und möchte das er ein 2 GUI erstellt wenn mann ein Button Drück und wenn man das kleinere Gui schließt nicht alles beenden wird kann mit da jemand weiter helfen ?

    3 Mal editiert, zuletzt von Unterbilker (27. Januar 2010 um 17:48)

  • Zauberwort: Advanced GUIGetMsg-Mode

    [autoit]

    #include <GUIConstantsEx.au3>
    $gui1 = GUICreate('GUI 1', 500, 300, 100, 100)
    $button1 = GUICtrlCreateButton('Aufruf GUI 2', 20, 20, 100, 21)

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

    $gui2 = GUICreate('GUI 2', 500, 300, 500, 500)
    $button2 = GUICtrlCreateButton('Zurück zu GUI 1', 20, 20, 100, 21)

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

    GUISetState(@SW_SHOW, $gui1)

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

    While 1
    $msg = GUIGetMsg(1) ; Advanced GUIGetMsg()-Mode (s. Hilfe)
    Switch $msg[0] ; Ereignis
    Case $button1
    GUISetState(@SW_SHOW, $gui2)
    GUISetState(@SW_HIDE, $gui1)
    Case $button2
    GUISetState(@SW_SHOW, $gui1)
    GUISetState(@SW_HIDE, $gui2)
    Case $GUI_EVENT_CLOSE
    Switch $msg[1] ; Fenster
    Case $gui2
    GUISetState(@SW_SHOW, $gui1)
    GUISetState(@SW_HIDE, $gui2)
    Case $gui1
    Exit
    EndSwitch
    EndSwitch
    WEnd

    [/autoit]
  • mhm so ganz verstehe ich das nicht ich habe hier mal das tool aber wenn ich den button drücke passirt nix

    [autoit]

    #include <IE.au3>#include <INet.au3>#include <GUIConstantsEx.au3>
    Global $toolname = "Aion-LauncherV1.1.exe"
    $online = _INetGetSource("http://bloodrevolution.ath.cx/aion.txt")sleep(500)If $online <> $toolname ThenSwitch MsgBox(68,"Update Verfügbar"," Es ist eine neuere Version online!" & @CRLF & "Möchtest du diese jetzt herunterladen")Case 6InetGet("http://bloodrevolution.ath.cx/version/"&$online, $online)While 1Sleep(10)WendRun($online)ExitEndSwitchEndIf
    if FileExists("Aion.LauncherV1.0.exe") then filedelete("Aion.LauncherV1.0.exe")
    $oIE = _IECreateEmbedded ()GUICreate($toolname, 800, 517, 210, 79)
    $NEWS = GUICtrlCreateLabel("NEWS",0, 39,190,15,1)$SPENDEN = GUICtrlCreateLabel("SPENDEN", 0, 55, 190, 15, 1)$START = GUICtrlCreateLabel("START", 0, 88, 190, 15, 1)$AIONPATCH = GUICtrlCreateLabel("AIONPATCH", 0, 122,190,15,1)$HOWTOPLAY = GUICtrlCreateLabel("HOWTOPLAY", 0, 138, 190, 15, 1)$GUIDES = GUICtrlCreateLabel("GUIDES", 0, 154, 190, 15, 1)$PARTNER = GUICtrlCreateLabel("PARTNER", 0, 171, 190, 15, 1)$BENNDEN = GUICtrlCreateLabel("BENNDEN", 0, 187, 190, 15, 1)$COPY = GUICtrlCreateLabel("COPY", 0, 500, 195, 15, 1)$GUIActiveX = GUICtrlCreateObj($oIE, 200, 0, 620, 519)GuiCtrlCreatePic("seite.jpg", 0, 0, 205, 517)GUISetState()_IENavigate ($oIE, "http://bloodrevolution.ath.cx/aion/installed.html")

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

    While 1Switch GUIGetMsg()Case -3 ExitLoopCase $NEWS_NEWS()Case $SPENDEN_SPENDEN()Case $START_START()Case $AIONPATCH_AIONPATCH()Case $HOWTOPLAY_HOWTOPLAY()Case $GUIDES_GUIDES()Case $PARTNER_PARTNER()Case $BENNDEN_EXIT()Case $COPY_COPY()EndSwitchWEnd

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

    Func _NEWS()ShellExecute("http://aiononlineworld.de/")EndFunc
    Func _SPENDEN()ShellExecute("http://aiononlineworld.eu/spenden.html")EndFunc
    Func _START()EndFunc
    Func _AIONPATCH()EndFunc
    Func _HOWTOPLAY()EndFunc
    Func _GUIDES()EndFunc
    Func _PARTNER()GUICreate("PARTNER", 351, 151, 192, 124,)EndFunc#csmailto:Unterbilker@googlemail.com#ceFunc _EXIT()ExitEndFunc
    Func _COPY()ShellExecute("http://aiononlineworld.eu/index.php?page=LegalNotice")EndFunc

    [/autoit]


    Wenn man auf Partner drück soll ein kleines fenster aufkommen

  • Hallo Unterbilker,

    du solltest den Spoiler in eine lesbare Form bringen (@CRLF am Zeilenende fehlt). Eine generelle Möglichkeit eine 2. Gui anzuzeigen, hat dir SEuBo im MsgLoop-Modus gepostet, hier noch eine im OnEvent-Modus:

    Spoiler anzeigen
    [autoit]

    ;#include <StaticConstants.au3>
    ;#include <ButtonConstants.au3>
    #include <GUIConstantsEx.au3>
    #include<WindowsConstants.au3>

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

    Opt('GUIOnEventMode', 1)

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

    $cidGui1 = GUICreate('GUI 1', 400, 280, 140, 150, BitOR($WS_MINIMIZEBOX, $WS_MAXIMIZEBOX, $WS_SIZEBOX))
    ;erzeugt eine GUI die zurückgebebene ID wird in der Variablen $cidGui1 gespeichert
    ;die GUI hat BOXen für Mininmieren, Maximieren und ist in der Größe frei änderbar
    GUISetOnEvent($GUI_EVENT_CLOSE, '_End')

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

    $cidVutton1 = GUICtrlCreateButton('&Aufruf GUI 2', 20, 20, 100, 21)
    GUICtrlSetResizing(-1, $GUI_DOCKSIZE + $GUI_DOCKRIGHT + $GUI_DOCKTOP)
    ;verankert den Button "Afruf Gui 2" rechts und oben und fixiert die Größe
    ;beim Resizen bleibt es dadurch auf seiner Position am rechten Rand
    GUICtrlSetOnEvent(-1, '_CallGui2')
    ;Beim Klicken des Buttons wird die Funktion _CallGui2 aufgerufen

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

    $cidGui2 = GUICreate('GUI 2', 500, 300, 200, 50,-1,-1,$cidGui1)
    ;erzeugt eine GUI als Child von Gui1, die zurückgebebene ID wird in der Variablen $cidGui2 gespeichert
    GUISetOnEvent($GUI_EVENT_CLOSE, '_BackToGui1')

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

    $cidButton2 = GUICtrlCreateButton('&Zurück zu GUI 1', 20, 20, 100, 21)
    GUICtrlSetOnEvent(-1, '_BackToGui1')
    ;Beim Klicken des Buttons wird die Funktion _BackToGui1 aufgerufen

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

    GUISetState(@SW_SHOW, $cidGui1)

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

    While 1
    Sleep(1000)
    WEnd

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

    Func _end()
    GUIDelete($cidGui2)
    GUIDelete($cidGui1)
    Exit
    EndFunc

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

    Func _CallGui2()
    GUISetState(@SW_DISABLE, $cidGui1)
    GUISetState(@SW_SHOW, $cidGui2)
    EndFunc

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

    Func _BackToGui1()
    GUISetState(@SW_ENABLE, $cidGui1)
    GUISetState(@SW_HIDE, $cidGui2)
    EndFunc

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

    mfg (Auto)Bert

  • Ich hab mir mal die Mühe gemacht, deinen Code zu "reparieren".
    Meinst du das vllt so?

    Spoiler anzeigen
    [autoit]

    #include <IE.au3>
    #include <INet.au3>
    #include <GUIConstantsEx.au3>
    Global $toolname = "Aion-LauncherV1.1.exe"
    $online = _INetGetSource("http://bloodrevolution.ath.cx/aion.txt")
    Sleep(500)
    If $online <> $toolname Then
    Switch MsgBox(68, "Update Verfügbar", " Es ist eine neuere Version online!" & @CRLF & "Möchtest du diese jetzt herunterladen")
    Case 6
    InetGet("http://bloodrevolution.ath.cx/version/" & $online, $online)
    While 1
    Sleep(10)
    WEnd
    Run($online)
    Exit
    EndSwitch
    EndIf
    If FileExists("Aion.LauncherV1.0.exe") Then FileDelete("Aion.LauncherV1.0.exe")
    $oIE = _IECreateEmbedded()

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

    $GUI1 = GUICreate($toolname, 800, 517, 210, 79)
    $NEWS = GUICtrlCreateLabel("NEWS", 0, 39, 190, 15, 1)
    $SPENDEN = GUICtrlCreateLabel("SPENDEN", 0, 55, 190, 15, 1)
    $START = GUICtrlCreateLabel("START", 0, 88, 190, 15, 1)
    $AIONPATCH = GUICtrlCreateLabel("AIONPATCH", 0, 122, 190, 15, 1)
    $HOWTOPLAY = GUICtrlCreateLabel("HOWTOPLAY", 0, 138, 190, 15, 1)
    $GUIDES = GUICtrlCreateLabel("GUIDES", 0, 154, 190, 15, 1)
    $PARTNER = GUICtrlCreateLabel("PARTNER", 0, 171, 190, 15, 1)
    $BENNDEN = GUICtrlCreateLabel("BENNDEN", 0, 187, 190, 15, 1)
    $COPY = GUICtrlCreateLabel("COPY", 0, 500, 195, 15, 1)
    $GUIActiveX = GUICtrlCreateObj($oIE, 200, 0, 620, 519)
    GUICtrlCreatePic("seite.jpg", 0, 0, 205, 517)
    GUISetState()
    _IENavigate($oIE, "http://bloodrevolution.ath.cx/aion/installed.html")

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

    $GUI2 = GUICreate("PARTNER", 351, 151, 192, 124)

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

    While 1
    $nMsg = GUIGetMsg(1)
    Switch $nMsg[0] ; Event
    Case -3
    Switch $nMsg[1] ; Window
    Case $GUI1
    Exit
    Case $GUI2
    GUISetState(@SW_HIDE, $GUI2)
    EndSwitch
    Case $NEWS
    _NEWS()
    Case $SPENDEN
    _SPENDEN()
    Case $START
    _START()
    Case $AIONPATCH
    _AIONPATCH()
    Case $HOWTOPLAY
    _HOWTOPLAY()
    Case $GUIDES
    _GUIDES()
    Case $PARTNER
    _PARTNER()
    Case $BENNDEN
    _EXIT()
    Case $COPY
    _COPY()
    EndSwitch
    WEnd

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

    Func _NEWS()
    ShellExecute("http://aiononlineworld.de/")
    EndFunc ;==>_NEWS
    Func _SPENDEN()
    ShellExecute("http://aiononlineworld.eu/spenden.html")
    EndFunc ;==>_SPENDEN
    Func _START()
    EndFunc ;==>_START
    Func _AIONPATCH()
    EndFunc ;==>_AIONPATCH
    Func _HOWTOPLAY()
    EndFunc ;==>_HOWTOPLAY
    Func _GUIDES()
    EndFunc ;==>_GUIDES
    Func _PARTNER()
    GUISetState(@SW_SHOW, $GUI2)
    EndFunc ;==>_PARTNER
    #cs
    mailto:Unterbilker@googlemail.com
    #ce
    Func _EXIT()
    Exit
    EndFunc ;==>_EXIT
    Func _COPY()
    ShellExecute("http://aiononlineworld.eu/index.php?page=LegalNotice")
    EndFunc ;==>_COPY

    [/autoit]