Neu laden per Traymenu!?

  • hallo leute,
    also es geht um die "neu-laden" funktion im traymenu. diese kann nur einmal ausgeführt werden dannach geht das menu komplett nicht mehr.
    ( ich will das man das programm immer wiede neu laden kann )

    hab hier mal schnell ein programm gescriptet um euch das problem zu veranschaulichen...

    [autoit]

    #include <GUIConstants.au3>
    #include <Sound.au3>

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

    Global $open_tray, $About_tray, $Lizenz_tray, $exit_tray, $mguu

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

    Opt("GUICloseOnESC", 1)
    opt("TrayMenuMode", 1)
    opt("TrayOnEventMode", 1)

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

    $open_tray = TrayCreateItem ("Neu [F3]")
    TrayItemSetOnEvent (-1, "Nload")
    ;$Alarm_tray = TrayCreateItem ("Alarm")
    ;TrayItemSetOnEvent (-1, "Alarm")
    $About_tray = TrayCreateItem ("About [F1]")
    TrayItemSetOnEvent (-1, "About")
    $Lizenz_tray = TrayCreateItem ("Lizenz [F2]")
    TrayItemSetOnEvent (-1, "Lizenz")
    TrayCreateItem ("")
    $exit_tray = TrayCreateItem ("Exit [Alt+F4]")
    TrayItemSetOnEvent (-1, "Set_Exit")

    TraySetState ()

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

    HotKeySet("{F1}", "About")
    HotKeySet("{F2}", "Lizenz")
    HotKeySet("{F3}", "Nload")
    HotKeySet("!" & "{F4}", "Set_Exit")

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

    _neu()

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

    Func _neu()
    $mguu = GUICreate("Mal ganz unter uns", 225, 120)
    GUICtrlCreateLabel("Hast du eigentlich einen kleinen P****?", 20, 30)
    $ja = GUICtrlCreateButton("Ja", 50, 70, 50, 25)
    GUICtrlSetCursor(-1, 0)
    $nein = GUICtrlCreateButton("Nein", 120, 70, 50, 25)
    GUICtrlSetCursor(-1, 0)

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

    GUISetState()

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

    While 1
    $msg = GUIGetMsg()
    Select
    Case $msg = $GUI_EVENT_CLOSE
    GUIDelete($mguu)
    MsgBox(0, "Info", "Hab ich`s doch gewusst!")
    Exit
    $msg = GUIGetMsg()
    Case $msg = $ja
    GUIDelete($mguu)
    MsgBox(0, "Info", "Hab ich`s doch gewusst!")
    Case $msg = $nein
    GUICtrlDelete($nein)
    EndSelect
    WEnd
    EndFunc

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

    Func Nload()
    GUIDelete( $mguu )
    _neu()
    EndFunc

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

    Func About()
    MsgBox(64, "About", "team2way")
    EndFunc

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

    Func Lizenz()
    MsgBox(0, "Lizenz", "hier die lizenz")
    EndFunc

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

    Func Set_Exit()
    GUIDelete($mguu)
    MsgBox(0, "Info", "Hab ich`s doch gewusst!")
    Exit
    EndFunc ;==>Set_Exit

    [/autoit]


    hoffe ihr könnt mir weiter helfen

    team2way

  • machs am besten über ne doppelte schleife ;)

    [autoit]

    While 1
    ;gUI etc

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

    While 1
    ;das die gui offen bleibt
    WEnd
    WEnd

    [/autoit]

    Und wenn du es schon über eine Func machst so solltest du das traymenu vllt in die func einbeziehn ;)

    MFG FireFlyer

    *Paradox ist, wenn man sich im Handumdrehen den Fuss bricht* :D

  • das mit dem in die func einbeziehn hab ich schon probiert - hat aber auch nicht gefunzt :S
    kannst du das mit dem while 1 wend grad mal in meinen code einbaun (weiß nicht genau wie du das meinst)

    thx schon mal im vorraus

  • Spoiler anzeigen
    [autoit]

    #include <GUIConstants.au3>
    #include <Sound.au3>

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

    Opt("GUICloseOnESC", 1)
    opt("TrayMenuMode", 1)
    opt("TrayOnEventMode", 1)

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

    While 1
    Global $open_tray, $About_tray, $Lizenz_tray, $exit_tray, $mguu
    $open_tray = TrayCreateItem ("Neu [F3]")
    TrayItemSetOnEvent (-1, "Nload")
    ;$Alarm_tray = TrayCreateItem ("Alarm")
    ;TrayItemSetOnEvent (-1, "Alarm")
    $About_tray = TrayCreateItem ("About [F1]")
    TrayItemSetOnEvent (-1, "About")
    $Lizenz_tray = TrayCreateItem ("Lizenz [F2]")
    TrayItemSetOnEvent (-1, "Lizenz")
    TrayCreateItem ("")
    $exit_tray = TrayCreateItem ("Exit [Alt+F4]")
    TrayItemSetOnEvent (-1, "Set_Exit")

    TraySetState ()

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

    HotKeySet("{F1}", "About")
    HotKeySet("{F2}", "Lizenz")
    HotKeySet("{F3}", "Nload")
    HotKeySet("!" & "{F4}", "Set_Exit")

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

    $mguu = GUICreate("Mal ganz unter uns", 225, 120)
    GUICtrlCreateLabel("Hast du eigentlich einen kleinen P****?", 20, 30)
    $ja = GUICtrlCreateButton("Ja", 50, 70, 50, 25)
    GUICtrlSetCursor(-1, 0)
    $nein = GUICtrlCreateButton("Nein", 120, 70, 50, 25)
    GUICtrlSetCursor(-1, 0)

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

    GUISetState()

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

    While 1
    $msg = GUIGetMsg()
    Select
    Case $msg = $GUI_EVENT_CLOSE
    Set_Exit()
    $msg = GUIGetMsg()
    Case $msg = $ja
    GUIDelete($mguu)
    MsgBox(0, "Info", "Hab ich`s doch gewusst!")
    Case $msg = $nein
    GUICtrlDelete($nein)
    EndSelect
    WEnd
    GUIDelete($mguu)
    WEnd

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

    Func Nload()
    ExitLoop
    EndFunc

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

    Func About()
    MsgBox(64, "About", "team2way")
    EndFunc

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

    Func Lizenz()
    MsgBox(0, "Lizenz", "hier die lizenz")
    EndFunc

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

    Func Set_Exit()
    GUIDelete($mguu)
    MsgBox(0, "Info", "Hab ich`s doch gewusst!")
    Exit
    EndFunc ;==>Set_Exit

    [/autoit]

    keine ahnung obs so geht kanns leider nicht testen :/

    Generell: Es ist ein schlechter Stil im Tray On Event Mode zu arbeiten aber gleichzeitig mit GUIGetMsg

    MFG FireFlyer

    *Paradox ist, wenn man sich im Handumdrehen den Fuss bricht* :D

  • @ fireflyer hab grad dein script getestet geht leider bei mir nicht...

    der Exitloop ist glaub ich auch hier fehl am platz:

    [autoit]

    Func Nload()
    ExitLoop
    EndFunc

    [/autoit]
    Zitat

    Generell: Es ist ein schlechter Stil im Tray On Event Mode zu arbeiten aber gleichzeitig mit GUIGetMsg


    wie könnte ich das noch anders umsetzen - so das es funktioniert?

  • so ich hatte jetzt endlich mal kurz 2 minuten.. ich habs doch net mit ner doppelten schleife gemacht sondern mit ner rekursiven funktion

    Spoiler anzeigen
    [autoit]

    #include <GUIConstants.au3>
    #include <Sound.au3>

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

    Opt("GUICloseOnESC", 1)
    opt("TrayMenuMode", 1)
    Opt("GUIOnEventMode", 1)
    Opt("TrayOnEventMode", 1)

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

    Global $open_tray, $About_tray, $Lizenz_tray, $exit_tray, $mguu, $gmsg, $tsmg, $nein, $ja

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

    main()

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

    Func main()
    $open_tray = TrayCreateItem ("Neu [F3]")
    TrayItemSetOnEvent($open_tray, "main")

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

    ;$Alarm_tray = TrayCreateItem ("Alarm")
    ;TrayItemSetOnEvent (-1, "Alarm")
    $About_tray = TrayCreateItem ("About [F1]")
    TrayItemSetOnEvent($about_tray, "about")

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

    $Lizenz_tray = TrayCreateItem ("Lizenz [F2]")
    TrayItemSetOnEvent($Lizenz_tray, "lizenz")

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

    TrayCreateItem ("")
    $exit_tray = TrayCreateItem ("Exit [Alt+F4]")
    TrayItemSetOnEvent($exit_tray, "Set_Exit")

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


    TraySetState ()

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

    HotKeySet("{F1}", "About")
    HotKeySet("{F2}", "Lizenz")
    HotKeySet("{F3}", "main")
    HotKeySet("!" & "{F4}", "Set_Exit")

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

    $mguu = GUICreate("Mal ganz unter uns", 225, 120)
    GUICtrlCreateLabel("Hast du eigentlich einen kleinen P****?", 20, 30)
    $ja = GUICtrlCreateButton("Ja", 50, 70, 50, 25)
    GUICtrlSetOnEvent($ja, "ja")
    GUICtrlSetCursor(-1, 0)
    $nein = GUICtrlCreateButton("Nein", 120, 70, 50, 25)
    GUICtrlSetOnEvent($nein, "nein")
    GUICtrlSetCursor(-1, 0)

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

    GUISetState()

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

    While 1

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

    WEnd
    EndFunc

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

    Func About()
    MsgBox(64, "About", "team2way")
    EndFunc

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

    Func Lizenz()
    MsgBox(0, "Lizenz", "hier die lizenz")
    EndFunc

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

    Func Set_Exit()
    GUIDelete($mguu)
    MsgBox(0, "Info", "Hab ich`s doch gewusst!")
    Exit
    EndFunc ;==>Set_Exit

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

    Func Ja()
    GUIDelete($mguu)
    MsgBox(0, "Info", "Hab ich`s doch gewusst!")
    EndFunc

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

    Func Nein()
    GUICtrlDelete($nein)
    EndFunc

    [/autoit]

    MFG FireFlyer

    *Paradox ist, wenn man sich im Handumdrehen den Fuss bricht* :D

  • da tritt immer noch der fehler auf ^^
    man kann das script nur ein mal neuladen und dann nicht mehr. bei deinem kommt dann noch hinzu das sich die anzeige des trays jetzt noch verdoppelt.

    kann mir hier jemand weiterhelfen?

  • Spoiler anzeigen
    [autoit]

    #include <GUIConstants.au3>
    #include <Sound.au3>

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

    Global $open_tray, $About_tray, $Lizenz_tray, $exit_tray, $mguu

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

    Opt("GUICloseOnESC", 1)
    Opt("TrayMenuMode", 1)
    Opt("TrayOnEventMode", 1)
    Opt("GuiOnEventMode", 1)

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

    ;~ $open_tray = TrayCreateItem("Neu [F3]")
    ;~ TrayItemSetOnEvent(-1, "Nload")
    ;$Alarm_tray = TrayCreateItem ("Alarm")
    ;TrayItemSetOnEvent (-1, "Alarm")
    $About_tray = TrayCreateItem("About [F1]")
    TrayItemSetOnEvent(-1, "About")
    $Lizenz_tray = TrayCreateItem("Lizenz [F2]")
    TrayItemSetOnEvent(-1, "Lizenz")
    TrayCreateItem("")
    $exit_tray = TrayCreateItem("Exit [Alt+F4]")
    TrayItemSetOnEvent(-1, "Set_Exit")

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

    TraySetState()

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

    HotKeySet("{F1}", "About")
    HotKeySet("{F2}", "Lizenz")
    ;~ HotKeySet("{F3}", "Nload")
    HotKeySet("!" & "{F4}", "Set_Exit")

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

    $mguu = GUICreate("Mal ganz unter uns", 225, 120)
    GUICtrlCreateLabel("Hast du eigentlich einen kleinen P****?", 20, 30)
    $ja = GUICtrlCreateButton("Ja", 50, 70, 50, 25)
    GUICtrlSetCursor(-1, 0)
    GUICtrlSetOnEvent(-1, '_ja')
    $nein = GUICtrlCreateButton("Nein", 120, 70, 50, 25)
    GUICtrlSetOnEvent(-1, '_nein')
    GUICtrlSetCursor(-1, 0)

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

    GUISetState()

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

    While 1
    Sleep(10000)
    WEnd

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

    Func _nein()
    GUICtrlSetState($nein, $GUI_HIDE)
    EndFunc ;==>_nein

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

    Func _ja()
    GUISetState(@SW_HIDE)
    MsgBox(0, "Info", "Hab ich`s doch gewusst!")
    Sleep(500)
    GUICtrlSetState($nein, $GUI_SHOW)
    GUISetState(@SW_SHOW)
    EndFunc ;==>_ja

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

    Func About()
    MsgBox(64, "About", "team2way")
    EndFunc ;==>About

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

    Func Lizenz()
    MsgBox(0, "Lizenz", "hier die lizenz")
    EndFunc ;==>Lizenz

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

    Func Set_Exit()
    GUIDelete($mguu)
    MsgBox(0, "Info", "Hab ich`s doch gewusst!")
    Exit
    EndFunc ;==>Set_Exit

    [/autoit]
  • also die "neu laden" funktion soll schon noch erhalten sein. es soll sich nicht immer wieder neu laden sondern nur wenn man es neu laden will ^^

    mfg team2way

  • Spoiler anzeigen
    [autoit][/autoit] [autoit][/autoit] [autoit]

    #include <GUIConstants.au3>
    #include <Sound.au3>

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

    Global $open_tray, $About_tray, $Lizenz_tray, $exit_tray, $mguu, $ja, $nein

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

    Opt("GUICloseOnESC", 1)
    Opt("TrayMenuMode", 1)
    Opt("TrayOnEventMode", 1)
    Opt("GuiOnEventMode", 1)

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

    $open_tray = TrayCreateItem("Neu [F3]")
    TrayItemSetOnEvent(-1, "Nload")
    ;$Alarm_tray = TrayCreateItem ("Alarm")
    ;TrayItemSetOnEvent (-1, "Alarm")
    $About_tray = TrayCreateItem("About [F1]")
    TrayItemSetOnEvent(-1, "About")
    $Lizenz_tray = TrayCreateItem("Lizenz [F2]")
    TrayItemSetOnEvent(-1, "Lizenz")
    TrayCreateItem("")
    $exit_tray = TrayCreateItem("Exit [Alt+F4]")
    TrayItemSetOnEvent(-1, "Set_Exit")
    TraySetState()
    HotKeySet("{F1}", "About")
    HotKeySet("{F2}", "Lizenz")
    HotKeySet("{F3}", "Nload")
    HotKeySet("!" & "{F4}", "Set_Exit")
    TraySetOnEvent($open_tray, "_neu")
    _neu()

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

    Func _neu()
    $mguu = GUICreate("Mal ganz unter uns", 225, 120)
    GUICtrlCreateLabel("Hast du eigentlich einen kleinen P****?", 20, 30)
    Global $ja = GUICtrlCreateButton("Ja", 50, 70, 50, 25)
    GUICtrlSetCursor(-1, 0)
    Global $nein = GUICtrlCreateButton("Nein", 120, 70, 50, 25)
    GUICtrlSetCursor(-1, 0)
    GUISetState()
    GUICtrlSetOnEvent($ja, "ja")
    GUICtrlSetOnEvent($nein, "nein")
    GUISetOnEvent($GUI_EVENT_CLOSE, "Set_Exit")
    EndFunc ;==>_neu

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

    Func ja()
    GUIDelete($mguu)
    MsgBox(0, "Info", "Hab ich`s doch gewusst!")
    EndFunc

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

    Func nein()
    GUICtrlDelete($nein)
    EndFunc

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

    Func Nload()
    GUIDelete($mguu)
    _neu()
    EndFunc ;==>Nload

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

    Func About()
    MsgBox(64, "About", "team2way")
    EndFunc ;==>About

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

    Func Lizenz()
    MsgBox(0, "Lizenz", "hier die lizenz")
    EndFunc ;==>Lizenz

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

    Func Set_Exit()
    GUIDelete($mguu)
    MsgBox(0, "Info", "Hab ich`s doch gewusst!")
    Exit
    EndFunc ;==>Set_Exit

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

    While 1
    Sleep(10)
    WEnd

    [/autoit]

    Padmak

    • Offizieller Beitrag
    Spoiler anzeigen
    [autoit]

    #include <GUIConstants.au3>
    #include <Sound.au3>

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

    Global $open_tray, $About_tray, $Lizenz_tray, $exit_tray, $mguu

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

    Opt("GUICloseOnESC", 1)
    Opt("TrayMenuMode", 1)
    Opt("TrayOnEventMode", 1)

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

    $open_tray = TrayCreateItem("Neu [F3]")
    TrayItemSetOnEvent(-1, "Nload")
    ;$Alarm_tray = TrayCreateItem ("Alarm")
    ;TrayItemSetOnEvent (-1, "Alarm")
    $About_tray = TrayCreateItem("About [F1]")
    TrayItemSetOnEvent(-1, "About")
    $Lizenz_tray = TrayCreateItem("Lizenz [F2]")
    TrayItemSetOnEvent(-1, "Lizenz")
    TrayCreateItem("")
    $exit_tray = TrayCreateItem("Exit [Alt+F4]")
    TrayItemSetOnEvent(-1, "Set_Exit")

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

    TraySetState()

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

    HotKeySet("{F1}", "About")
    HotKeySet("{F2}", "Lizenz")
    HotKeySet("{F3}", "Nload")
    HotKeySet("!" & "{F4}", "Set_Exit")

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

    $mguu = GUICreate("Mal ganz unter uns", 225, 120)
    GUICtrlCreateLabel("Hast du eigentlich einen kleinen P****?", 20, 30)
    $ja = GUICtrlCreateButton("Ja", 50, 70, 50, 25)
    GUICtrlSetCursor(-1, 0)
    $nein = GUICtrlCreateButton("Nein", 120, 70, 50, 25)
    GUICtrlSetCursor(-1, 0)

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

    GUISetState()

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

    While 1
    $msg = GUIGetMsg()
    Select
    Case $msg = $GUI_EVENT_CLOSE
    Set_Exit()
    ;~ GUIDelete($mguu)
    ;~ MsgBox(0, "Info", "Hab ich`s doch gewusst!")
    ;~ Exit
    $msg = GUIGetMsg()
    Case $msg = $ja
    GUISetState(@SW_HIDE)
    MsgBox(0, "Info", "Hab ich`s doch gewusst!")
    Case $msg = $nein
    GUICtrlSetState($nein, $GUI_HIDE)
    EndSelect
    WEnd

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

    Func Nload()
    GUICtrlSetState($nein, $GUI_SHOW)
    GUISetState()
    EndFunc ;==>Nload

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

    Func About()
    MsgBox(64, "About", "team2way")
    EndFunc ;==>About

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

    Func Lizenz()
    MsgBox(0, "Lizenz", "hier die lizenz")
    EndFunc ;==>Lizenz

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

    Func Set_Exit()
    HotKeySet("{F1}")
    HotKeySet("{F2}")
    HotKeySet("{F3}")
    HotKeySet("!" & "{F4}")
    MsgBox(0, "Info", "Hab ich`s doch gewusst!")
    Exit
    EndFunc ;==>Set_Exit

    [/autoit]