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*
$GUI_EVENT_CLOSE kann nicht abgefangen werden
-
- [ gelöst ]
-
oliverh -
30. Januar 2009 um 15:05 -
Geschlossen -
Erledigt
-
-
also bei mir läufts (jez^^) auch perfekt^^
wenns fertig ist musst du es unbedingt unter scripte veröffentlichen^^Padmak
Edit: huuii 300ster post
-
ja, werd ich machen... wird aber wohl noch ein bisschen dauern, da ich auch noch reminder einbauen will
EDIT300. Post ich mach mit
-
hey alles gute zum 300. Post :D:D:D:D:D
Padmak
-
dito *lach*
-
- 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>
[/autoit]
#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 -
cool, so funktioniert es auch bei mir danke
-