So, auch ich hab mal wieder was gemacht:
Ein Adressbuch mit den Funktionen:
-Adressen importieren
-Adressen exportieren
-Neue Kartein anlegen
-Kartein löschen
-Alle Kartein löschen
-Geburtstagerinnerung ( zeigt wer heute von den Kontakten Geburtstag hat)
-Kartei Drucken
-Kartei bearbeiten
-...
Hier ein pic:
[Blockierte Grafik: http://img134.imageshack.us/img134/4198/unbenanntpx.png]
Hier noch das Script:
Spoiler anzeigen
#include
[/autoit] [autoit][/autoit] [autoit]#include
[/autoit] [autoit][/autoit] [autoit]#include
[/autoit] [autoit][/autoit] [autoit]#include
[/autoit] [autoit][/autoit] [autoit]#include
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]#cs
[/autoit] [autoit][/autoit] [autoit]AutoIt Version: 3.3.0.0
[/autoit] [autoit][/autoit] [autoit]Script: Adressbuch by Faweyr.au3
[/autoit] [autoit][/autoit] [autoit]Betriebssystem: XP, Win 2000, Me, Win 98, Win 95
[/autoit] [autoit][/autoit] [autoit]Author: Faweyr
[/autoit] [autoit][/autoit] [autoit]Info: Veränderungen für eigennutzen erlaubt. Kostenpflichtiges verkaufen der Software untersagt.
[/autoit] [autoit][/autoit] [autoit]Programmaufbau: Alle Änderungen werden sofort in der Settings.ini-Datei gespeichert, und bei Bedarf werden die Informationen rausgelesen.
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]#ce
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]Opt("TrayMenuMode",1)
[/autoit] [autoit][/autoit] [autoit]FileInstall("Settings.ini", @ScriptDir&"\Settings.ini")
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]#Region Variablen
[/autoit] [autoit][/autoit] [autoit]Global $defaultstatus = "Heute hat Geburtstag: ", $statuslabel
[/autoit] [autoit][/autoit] [autoit]Global $NewStyle
[/autoit] [autoit][/autoit] [autoit]#EndRegion Variablen
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]#Region Create GUI
[/autoit] [autoit][/autoit] [autoit];Main (Das Gui mit der Toolbar oben und unten)
[/autoit] [autoit][/autoit] [autoit]$gui = GUICreate("Adressbuch", 600, 410)
[/autoit] [autoit][/autoit] [autoit]TraySetState(2)
[/autoit] [autoit][/autoit] [autoit]$menu = GUICtrlCreateMenu("Menü")
[/autoit] [autoit][/autoit] [autoit]$viewmenu = GUICtrlCreateMenu("Ansicht", -1, 1)
[/autoit] [autoit][/autoit] [autoit]$viewstatusitem = GUICtrlCreateMenuItem("Statusleiste", $viewmenu)
[/autoit] [autoit][/autoit] [autoit]GUICtrlSetState(-1, $GUI_CHECKED)
[/autoit] [autoit][/autoit] [autoit]$helpmenu = GUICtrlCreateMenu("?", -1, 3)
[/autoit] [autoit][/autoit] [autoit]$helpitem = GUICtrlCreateMenuItem("About", $helpmenu)
[/autoit] [autoit][/autoit] [autoit]$expitem = GUICtrlCreateMenuItem("Adressen exportieren", $menu)
[/autoit] [autoit][/autoit] [autoit]$impitem = GUICtrlCreateMenuItem("Adressen importieren", $menu)
[/autoit] [autoit][/autoit] [autoit]GUICtrlCreateMenuItem("", $menu, 2)
[/autoit] [autoit][/autoit] [autoit]$clearitem = GUICtrlCreateMenuItem("Clear all", $menu)
[/autoit] [autoit][/autoit] [autoit]GUICtrlCreateMenuItem("", $menu, 4)
[/autoit] [autoit][/autoit] [autoit]$menuitem = GUICtrlCreateMenuItem("Exit", $menu)
[/autoit] [autoit][/autoit] [autoit]$statuslabel = GUICtrlCreateLabel($defaultstatus, 0,375, 600, 16, BitOR($SS_SIMPLE, $SS_SUNKEN))
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit];Search (Das Suchfenster mit Button)
[/autoit] [autoit][/autoit] [autoit]GUICtrlCreateGroup("Search", 10, 10, 170, 360)
[/autoit] [autoit][/autoit] [autoit]$search = GUICtrlCreateInput("", 15, 30, 130, 20)
[/autoit] [autoit][/autoit] [autoit]$mylist = GUICtrlCreateList("", 15, 60, 160, 270,BitOr($LBS_DISABLENOSCROLL, $LBS_SORT))
[/autoit] [autoit][/autoit] [autoit]GUICtrlSetLimit(-1, 200)
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]$button1 = GUICtrlCreateButton("Neue Kartei", 20, 335, 70)
[/autoit] [autoit][/autoit] [autoit]$button2 = GUICtrlCreateButton("Löschen",100, 335, 70)
[/autoit] [autoit][/autoit] [autoit]$button3 = GUICtrlCreateButton("Go",150, 29, 23,23)
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit];Edit (Das Personen-Fenster mit Button)
[/autoit] [autoit][/autoit] [autoit]GUICtrlCreateGroup("Person", 190, 10, 400, 360)
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]GUICtrlCreateLabel("Name:", 200, 30)
[/autoit] [autoit][/autoit] [autoit]$name = GUICtrlCreateLabel("", 300, 30,100,20)
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]GUICtrlCreateLabel("Status:", 200, 55)
[/autoit] [autoit][/autoit] [autoit]$status = GUICtrlCreateLabel("", 300, 55,100,20)
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]GUICtrlCreateLabel("Geburtstag:", 200, 80)
[/autoit] [autoit][/autoit] [autoit]$geburtstag = GUICtrlCreateLabel("", 300, 80,100,20)
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]GUICtrlCreateLabel("Wohnort:", 200, 105)
[/autoit] [autoit][/autoit] [autoit]$ort = GUICtrlCreateLabel("", 300, 105,100,20)
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]GUICtrlCreateLabel("Adresse:", 200, 130)
[/autoit] [autoit][/autoit] [autoit]$ad = GUICtrlCreateLabel("", 300, 130,100,20)
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]GUICtrlCreateLabel("Telefon:", 200, 155)
[/autoit] [autoit][/autoit] [autoit]$tel = GUICtrlCreateLabel("", 300, 155,100,20)
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]GUICtrlCreateLabel("E-mail:", 200, 180)
[/autoit] [autoit][/autoit] [autoit]$mail = GUICtrlCreateLabel("", 300, 180,150,20)
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]GUICtrlCreateLabel("ICQ:", 200, 205)
[/autoit] [autoit][/autoit] [autoit]$icq = GUICtrlCreateLabel("", 300, 205,100,20)
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]GUICtrlCreateLabel("Firma:", 200, 230)
[/autoit] [autoit][/autoit] [autoit]$firma = GUICtrlCreateLabel("", 300, 230,100,20)
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]GUICtrlCreateLabel("Handy:", 200, 255)
[/autoit] [autoit][/autoit] [autoit]$handy = GUICtrlCreateLabel("", 300, 255,100,20)
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]$button4 = GUICtrlCreateButton("ändern",200, 335, 70)
[/autoit] [autoit][/autoit] [autoit]$button5 = GUICtrlCreateButton("Drucken",279, 335, 70)
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]GUICtrlCreateLabel("Last updade:", 420, 348)
[/autoit] [autoit][/autoit] [autoit]$up = GUICtrlCreateLabel("", 500, 348,70,20)
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]GUISetState(@SW_SHOW)
[/autoit] [autoit][/autoit] [autoit]#EndRegion Create GUI
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]#Region Laden
[/autoit] [autoit][/autoit] [autoit]GUICtrlSetData($mylist, IniRead(@ScriptDir &"\Settings.ini", "Adressen", "1", "")) ;Ladet die Liste, dieser Befehl wird noch öfter vorkommen
[/autoit] [autoit][/autoit] [autoit]#EndRegion Laden
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]#Region Geburtstag ;Dieser Teil arbeitet alle Kontakte ab und vergleicht derren Geburtstagsdatum mit dem heutigen
[/autoit] [autoit][/autoit] [autoit]$aa= UBound(StringSplit(IniRead(@ScriptDir &"\Settings.ini", "Adressen","1" , ""), "|"))
[/autoit] [autoit][/autoit] [autoit]$els = StringSplit(IniRead(@ScriptDir &"\Settings.ini", "Adressen","1" , ""), "|")
[/autoit] [autoit][/autoit] [autoit]Global $v1 = 1
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]Do
[/autoit] [autoit][/autoit] [autoit]$faw = StringSplit(IniRead(@ScriptDir &"\Settings.ini", "Def",$els[$v1] , ""), "|")
[/autoit] [autoit][/autoit] [autoit]If not @error then
[/autoit] [autoit][/autoit] [autoit]$faw1 = StringTrimRight( $faw[2], 5)
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]If $faw1 = @MDAY &"."& @mon Then
GUICtrlSetData($statuslabel, GUICtrlRead ($statuslabel) & $els[$v1] & ", ")
endif
endif
$v1 = $v1 + 1
Until $v1 = $aa
#EndRegion Geburtstag
#Region Wiederholungschleife
While 1
$msg = GUIGetMsg()
Select
Case $msg = $GUI_EVENT_CLOSE
Exit
Case $msg = $menuitem
Exit
Case $msg = $button1 ;Erstellt einen neuen Kontakt in der ini-Datei und aktuelliesiert die Liste
$new = InputBox("Neue Kartei", "Name?", "", "", 10, 10)
$string1 = StringInStr(IniRead(@ScriptDir &"\Settings.ini", "Adressen","1" , ""), $new)
If not @error = 1 Then
If $string1 = 0 then
IniWrite ( @ScriptDir &"\Settings.ini", "Adressen", "1", IniRead(@ScriptDir &"\Settings.ini", "Adressen", "1", "") & $new & "|")
GUICtrlSetData($mylist,"")
GUICtrlSetData($mylist, IniRead(@ScriptDir &"\Settings.ini", "Adressen", "1", ""))
IniWrite ( @ScriptDir &"\Settings.ini", "Def", $new, "|||||||||"& @MDAY &"."& @mon &"."& @YEAR)
GUICtrlSetData($mylist, $new)
aktuell()
endif
endif
Case $msg = $button3 ;Sucht in der Liste nach dem gesuchten Kontakt; wenn der Kontakt in der .ini nicht vorkommt, wird nichts gefunden, da sonst ein neuer Kontakt in der Liste erstellt wird.
$string = StringInStr(IniRead(@ScriptDir &"\Settings.ini", "Adressen","1" , ""), GUICtrlRead($search))
If not $string = 0 then
GUICtrlSetData($mylist, GUICtrlRead($search))
aktuell()
EndIf
Case $msg = $mylist ;Bei dem anklicken der Kontakte wird die Personen Sicht (links) aktuellisiert
aktuell()
Case $msg = $button2 ;Löscht den Kontakt aus der ini-Datei und aktuellisiert die List
IniDelete (@ScriptDir &"\Settings.ini", "Def", GUICtrlRead($mylist))
IniWrite ( @ScriptDir &"\Settings.ini", "Adressen", "1", StringReplace ( IniRead(@ScriptDir &"\Settings.ini", "Adressen", "1", ""), GUICtrlRead($mylist) & "|", ""))
GUICtrlSetData($mylist,"")
GUICtrlSetData($mylist, IniRead(@ScriptDir &"\Settings.ini", "Adressen", "1", ""))
aktuell()
Case $msg = $button4 ;Löscht die Labels, und setzt an derren Platz Input-Boxen. Nach dem drücken "speichern" werden die InputBoxen gelöscht und Labels erstellt
If Not $NewStyle Then
GUICtrlSetData($button4,"speichern" )
$NewStyle = True
$s2 = GUICtrlCreateInput(GUICtrlRead($status), 300, 55, 130, 20)
$s3 = GUICtrlCreateInput(GUICtrlRead($geburtstag), 300, 80, 130, 20)
$s4 = GUICtrlCreateInput(GUICtrlRead($ort), 300, 105, 130, 20)
$s5 = GUICtrlCreateInput(GUICtrlRead($ad), 300, 130, 130, 20)
$s6 = GUICtrlCreateInput(GUICtrlRead($tel), 300, 155, 130, 20)
$s7 = GUICtrlCreateInput(GUICtrlRead($mail), 300, 180, 130, 20)
$s8 = GUICtrlCreateInput(GUICtrlRead($icq), 300, 205, 130, 20)
$s9 = GUICtrlCreateInput(GUICtrlRead($firma), 300, 230, 130, 20)
$s10 = GUICtrlCreateInput(GUICtrlRead($handy), 300, 255, 130, 20)
GUICtrlDelete ( $status)
GUICtrlDelete ( $geburtstag)
GUICtrlDelete ( $ort)
GUICtrlDelete ( $ad)
GUICtrlDelete ( $tel)
GUICtrlDelete ( $mail)
GUICtrlDelete ( $icq)
GUICtrlDelete ( $firma)
GUICtrlDelete ( $handy)
Else
GUICtrlSetData($button4,"ändern" )
$NewStyle = False
IniWrite ( @ScriptDir &"\Settings.ini", "Def",GUICtrlRead($mylist) , GUICtrlRead($s2) &"|"& GUICtrlRead($s3) &"|"& GUICtrlRead($s4) &"|"& GUICtrlRead($s5) &"|"& GUICtrlRead($s6) &"|"& GUICtrlRead($s7) &"|"& GUICtrlRead($s8) &"|"& GUICtrlRead($s9) &"|"& GUICtrlRead($s10)&"|"& @MDAY &"."& @mon &"."& @YEAR)
$status = GUICtrlCreateLabel($s2, 300, 55,100,20)
$geburtstag = GUICtrlCreateLabel($s3, 300, 80,100,20)
$ort = GUICtrlCreateLabel($s4, 300, 105,100,20)
$ad = GUICtrlCreateLabel($s5, 300, 130,100,20)
$tel = GUICtrlCreateLabel($s6, 300, 155,100,20)
$mail = GUICtrlCreateLabel($s7, 300, 180,150,20)
$icq = GUICtrlCreateLabel($s8, 300, 205,100,20)
$firma = GUICtrlCreateLabel($s9, 300, 230,100,20)
$handy = GUICtrlCreateLabel($s10, 300, 255,100,20)
GUICtrlDelete ( $s2)
GUICtrlDelete ( $s3)
GUICtrlDelete ( $s4)
GUICtrlDelete ( $s5)
GUICtrlDelete ( $s6)
GUICtrlDelete ( $s7)
GUICtrlDelete ( $s8)
GUICtrlDelete ( $s9)
GUICtrlDelete ( $s10)
aktuell()
EndIf
Case $msg = $button5 ;Eine Textdatei wird mit den Kontaktdaten unter c:/ erstellt und gedruckt, anschließend wieder gelöscht.
$file = FileOpen ("C:\print.txt", 1 )
FileWriteLine ($file, " >" & GUICtrlRead($name) & "<")
FileWriteLine ($file, "")
FileWriteLine ($file, "Status: " & GUICtrlRead($status))
FileWriteLine ($file, "Geburtstag: " & GUICtrlRead($geburtstag))
FileWriteLine ($file, "Wohnort: " & GUICtrlRead($ort))
FileWriteLine ($file, "Adresse: " & GUICtrlRead($ad))
FileWriteLine ($file, "Telefon: " & GUICtrlRead($tel))
FileWriteLine ($file, "E-Mail: " & GUICtrlRead($mail))
FileWriteLine ($file, "ICQ: " & GUICtrlRead($icq))
FileWriteLine ($file, "Firma: " & GUICtrlRead($firma))
FileWriteLine ($file, "Handy: " & GUICtrlRead($handy))
_FilePrint("C:\print.txt")
Sleep(1500)
FileDelete ( "C:\print.txt" )
Case $msg = $impitem ; Es werden Kontakte importiert von der Datei: .faw .Ähnliches Vorgehen wie bei dem Geburtstag. Alle Kontakte abarbeiten und diese von der .faw in die .ini speichern.
$importfile = FileOpenDialog( "zu importierende Datei ", " ", "Konfigurationsdatei (*.faw) ", 1)
IniWrite (@ScriptDir &"\Settings.ini", "Adressen", "1", IniRead(@ScriptDir &"\Settings.ini", "Adressen", "1", "") & IniRead($importfile, "Adressen", "1", "") )
$aa= UBound(StringSplit(IniRead($importfile, "Adressen","1" , ""), "|"))
$els = StringSplit(IniRead($importfile, "Adressen","1" , ""), "|")
Global $v1 = 1
Do
IniWrite (@ScriptDir &"\Settings.ini", "Def", $els[$v1],IniRead($importfile, "Def",$els[$v1] , ""))
$v1 = $v1 + 1
Until $v1 = $aa
GUICtrlSetData($mylist,"")
GUICtrlSetData($mylist, IniRead(@ScriptDir &"\Settings.ini", "Adressen", "1", ""))
aktuell()
Case $msg = $expitem ; Die Kontakte werden exportiert, einfach eine Kopie von der Setting.ini auf den Destop mit der Endung: .faw
FileCopy ( @ScriptDir &"\Settings.ini", @DesktopDir & "\Adressen-Export.faw" , 1)
Case $msg = $clearitem ;Alle Kontakte werden aus der .ini gelöscht und danach die Liste aktuellisiert.
$asl = MsgBox(1, "Test", "Are you sure to delete all contacts?")
If $asl = 1 then
IniDelete ( @ScriptDir &"\Settings.ini", "Def" )
IniDelete ( @ScriptDir &"\Settings.ini", "Adressen" )
GUICtrlSetData($mylist,"")
GUICtrlSetData($mylist, IniRead(@ScriptDir &"\Settings.ini", "Adressen", "1", ""))
aktuell()
endif
Case $msg = $helpitem ; Ein Gui (About) wird estellt und schließt sich nach 5 sec.
$about = GUICreate("About", 230, 100,-1,-1, $WS_POPUP)
GUISetBkColor(0x00000)
GUICtrlCreateGraphic(0, 0, 1, 10)
GUICtrlSetBkColor(-1, 0x00000)
GUICtrlSetGraphic(-1, $GUI_GR_COLOR, 0x00ff00, 0x00000)
GUICtrlSetGraphic(-1, $GUI_GR_RECT, 5, 5, 220, 90)
GUICtrlCreateGraphic(0, 0, 0, 00)
GUICtrlSetBkColor(-1, 0x00000)
GUICtrlSetGraphic(-1, $GUI_GR_COLOR, 0x00ff00, 0x00000)
GUICtrlSetGraphic(-1, $GUI_GR_PIE, 40, 50, 30, 110, 270, 90)
GUICtrlCreateGraphic(0, 0, 1, 10)
GUICtrlSetBkColor(-1, 0x00000)
GUICtrlSetGraphic(-1, $GUI_GR_COLOR, 0x00ff00, 0x00000)
GUICtrlSetGraphic(-1, $GUI_GR_LINE, 27, 77)
GUICtrlCreateGraphic(0, 0, 1, 10)
GUICtrlSetBkColor(-1, 0x00000)
GUICtrlSetGraphic(-1, $GUI_GR_COLOR, 0x00ff00, 0x00ff00)
GUICtrlSetGraphic(-1, $GUI_GR_PIE, 43, 45, 25, 21, 90)
GUICtrlCreateLabel("Autor: Faweyr", 90, 15,100,20)
GUICtrlSetColor(-1, 0x00ff00)
GUICtrlCreateLabel("Version: 3.1", 90, 35,100,20)
GUICtrlSetColor(-1, 0x00ff00)
GUICtrlCreateLabel("Kontakt: faweyr1@web.de", 90, 55,130,20)
GUICtrlSetColor(-1, 0x00ff00)
GUICtrlCreateLabel("Freeware", 90, 75,100,15)
GUICtrlSetColor(-1, 0x00ff00)
TraySetState(2)
WinSetOnTop("About", "", 1)
GUISetState(@SW_SHOW)
sleep(5000)
GUISetState(@SW_hide)
EndSelect
If $msg = $viewstatusitem Then
If BitAND(GUICtrlRead($viewstatusitem), $GUI_CHECKED) = $GUI_CHECKED Then
GUICtrlSetState($viewstatusitem, $GUI_UNCHECKED)
GUICtrlSetState($statuslabel, $GUI_HIDE)
Else
GUICtrlSetState($viewstatusitem, $GUI_CHECKED)
GUICtrlSetState($statuslabel, $GUI_SHOW)
EndIf
endif
wend
#EndRegion Wiederholungschleife
#Region Function
Func aktuell() ;Diese Funktion aktuellisiert die Personen-View (links)
GUICtrlSetData($name, GUICtrlRead($mylist))
$var = StringSplit(IniRead(@ScriptDir &"\Settings.ini", "Def",GUICtrlRead($mylist) , ""), "|")
If not @error then
GUICtrlSetData($status,$var[1] )
GUICtrlSetData($geburtstag,$var[2] )
GUICtrlSetData($ort,$var[3] )
GUICtrlSetData($ad,$var[4] )
GUICtrlSetData($tel,$var[5] )
GUICtrlSetData($mail,$var[6] )
GUICtrlSetData($icq,$var[7] )
GUICtrlSetData($firma,$var[8] )
GUICtrlSetData($handy,$var[9] )
GUICtrlSetData($up,$var[10] )
endif
endfunc
#EndRegion Function
[/autoit] [autoit][/autoit] [autoit][/autoit]
Ich freue mich über brauchbare Kritik.
Viel Spaß
(Ich hatte ausversehen die falsche ini-compiliert. Die ersten 5 downloadets waren also Bugs.)...nur so zur Info.