$GUI_EVENT_CLOSE kann nicht abgefangen werden

  • bei mir aber ned... irgendwie macht es, wie bereits gesagt, 2 fenster auf einmal zu, wenn ich viele fnster erstellt hab und nur noch 2 übrig sind... naja sind wohl die geister in der maschine oder so *lach*

  • also bei mir läufts (jez^^) auch perfekt^^
    wenns fertig ist musst du es unbedingt unter scripte veröffentlichen^^

    Padmak

    Edit: huuii 300ster post :D

  • ja, werd ich machen... wird aber wohl noch ein bisschen dauern, da ich auch noch reminder einbauen will :)

    EDIT300. Post ich mach mit :rofl: :rofl: :rofl: :rofl: :rofl: :rofl: :rofl:

    • Offizieller Beitrag

    Probier mal das aus. Es wird immer nur das Fenster geschlossen, bei dem der x Button gedrückt wird :

    Spoiler anzeigen
    [autoit]

    #include <WinAPI.au3>
    #Include <WindowsConstants.au3>
    #Include <GuiConstantsEx.au3>
    #Include <File.au3>
    #Include <EditConstants.au3>
    #NoTrayIcon
    Opt("TrayMenuMode", 1)
    Opt("GUIResizeMode", 0)
    If Not FileExists(@ScriptDir & "\data.ini") Then
    _FileCreate(@ScriptDir & "\data.ini")
    $sectionSystem="AnzahlNotizen=0" & @LF & "AnzahlErinnerungen=0" & @LF & "DesktopWidth=" & @DesktopWidth & @LF & "DesktopHeight=" & @DesktopHeight
    IniWriteSection("data.ini", "SYSTEM", $sectionSystem)
    Else
    __rebuildNotes()
    EndIf
    $new=TrayCreateMenu("Neu")
    $newNote=TrayCreateItem("Notiz", $new)
    $newReminder=TrayCreateItem("Erinnerung", $new)
    TrayCreateItem("")
    $deleteAllItems=TrayCreateItem("Alle Einträge löschen")
    TrayCreateItem("")
    $exitTray=TrayCreateItem("Beenden")
    TraySetState()
    While True
    __checkDesktopSize(@DesktopWidth, @DesktopHeight)
    $msgT=TrayGetMsg()
    Select
    Case $msgT=$exitTray
    If IniRead(@ScriptDir & "\data.ini", "SYSTEM", "AnzahlNotizen", "")>0 Then
    For $i=0 To IniRead(@ScriptDir & "\data.ini", "SYSTEM", "AnzahlNotizen", "")-1
    $textBeforeReplace=ControlGetText("Notiz " & $i, "", "Edit1")
    $text=StringReplace($textBeforeReplace, @CRLF, Chr(160))
    $pos=WinGetPos("Notiz " & $i)
    $sectionGUI="PosX=" & $pos[0] & @LF & "PosY=" & $pos[1] & @LF & "Width=" & $pos[2] & @LF & "Heigth=" & $pos[3] & @LF & "Text=" & $text
    IniWriteSection(@ScriptDir & "\data.ini", $i, $sectionGUI)
    Next
    EndIf
    ExitLoop
    Case $msgT=$newNote
    __createNewNote()
    EndSelect
    $msgG=GUIGetMsg(1)
    Select
    Case $msgG[0]=$GUI_EVENT_CLOSE
    ;MsgBox(0,"Info",$msgG[1])
    _WinAPI_DestroyWindow($msgG[1])
    EndSelect
    WEnd
    Exit
    Func __createNewNote()
    GUICreate("Notiz " & IniRead(@ScriptDir & "\data.ini", "SYSTEM", "AnzahlNotizen", ""), 200, 200, -1, -1, $WS_SIZEBOX, $WS_EX_TOOLWINDOW)
    GUICtrlCreateEdit("", 0, 0, 198, 198, BitOR($ES_MULTILINE, $ES_WANTRETURN))
    GUISetState()
    IniWrite(@ScriptDir & "\data.ini", "SYSTEM", "AnzahlNotizen", IniRead(@ScriptDir & "\data.ini", "SYSTEM", "AnzahlNotizen", "")+1)
    EndFunc
    Func __rebuildNotes()
    For $i=0 To IniRead(@ScriptDir & "\data.ini", "SYSTEM", "AnzahlNotizen", "")-1
    GUICreate("Notiz " & $i, IniRead(@ScriptDir & "\data.ini", $i, "Width", ""), IniRead(@ScriptDir & "\data.ini", $i, "Heigth", ""), IniRead(@ScriptDir & "\data.ini", $i, "PosX", ""), IniRead(@ScriptDir & "\data.ini", $i, "PosY", ""), $WS_SIZEBOX, $WS_EX_TOOLWINDOW)
    GUICtrlCreateEdit(StringReplace(IniRead(@ScriptDir & "\data.ini", $i, "Text", ""), Chr(160), @CRLF), 0, 0, IniRead(@ScriptDir & "\data.ini", $i, "Width", "")-2, IniRead(@ScriptDir & "\data.ini", $i, "Heigth", "")-2, BitOR($ES_MULTILINE, $ES_WANTRETURN))
    GUISetState()
    Next
    EndFunc
    Func __checkDesktopSize($dWidth, $dHeight)
    If $dWidth<>IniRead(@ScriptDir & "\data.ini", "SYSTEM", "DesktopWidth", "") Or $dHeight<>IniRead(@ScriptDir & "\data.ini", "SYSTEM", "DesktopHeight", "") Then
    ; Fenster an neue Desktopgröße anpassen
    EndIf
    EndFunc

    [/autoit]