Hallo alle zusammen.
Ich hab aus langeweile mal ein kleines Telefonbuch erstellt. Im Moment kann man sich nur die Einträge anzeigen lassen.
Hinter dem Programm steht eine kleine MySQL-Datenbank, welche die ID, den Name und die Durchwahl beinhaltet. Die Datenbank hab ich mal mit Angehängt. Man muss diese nur noch Importieren und vielleicht die Zugangsdaten im Code ändern.
Für Verbesserungsvorschläge bin ich immer offen.
Bitte seid nicht so gemein, ist eins meiner ersten Skripts/ Programme in AutoIT.
Hier der Code:
Spoiler anzeigen
#NoTrayIcon
Opt("GUICloseOnESC", 0)
#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <GUIListBox.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#include <MySQL.au3>
Global $DBVerbindung, $res
[/autoit] [autoit][/autoit] [autoit]#region ### START Koda GUI section ### Form=g:\autoit\telefonbuch\form_telefonbuch.kxf
$FormTelefonbuch = GUICreate("Telefonbuch", 557, 342, -1, -1)
$MenuDatei = GUICtrlCreateMenu("&Datei")
$MenuItemBeenden = GUICtrlCreateMenuItem("Beenden" & @TAB & "", $MenuDatei)
$MenuHilfe = GUICtrlCreateMenu("&Hilfe")
$MenuItemAendern = GUICtrlCreateMenuItem("Fehlenden oder Falschen Eintrag melden", $MenuHilfe)
GUISetFont(9, 400, 0, "Arial")
$Group1 = GUICtrlCreateGroup("Eintrag auswählen", 8, 8, 225, 305)
$Label1 = GUICtrlCreateLabel("Eintrag durch anklicken auswählen", 24, 32, 195, 19)
$ListeName = GUICtrlCreateList("", 24, 56, 193, 256)
$Group2 = GUICtrlCreateGroup("Informationen zum aktuellen Eintrag", 248, 8, 297, 89)
$Label2 = GUICtrlCreateLabel("Name:", 264, 32, 41, 19)
$InputName = GUICtrlCreateInput("", 344, 32, 185, 23, BitOR($GUI_SS_DEFAULT_INPUT, $ES_READONLY))
$Label3 = GUICtrlCreateLabel("Durchwahl:", 264, 64, 66, 19)
$InputDurchwahl = GUICtrlCreateInput("", 344, 64, 185, 23, BitOR($GUI_SS_DEFAULT_INPUT, $ES_READONLY))
$Pic1 = GUICtrlCreatePic("", 248, 112, 228, 140)
GUICtrlSetImage($Pic1, @ScriptDir & "\logoneu.jpg")
GUISetState()
#endregion ### END Koda GUI section ###
_NameAuslesen($ListeName)
[/autoit] [autoit][/autoit] [autoit]While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE, $MenuItemBeenden
$FrageBeenden = MsgBox(4 + 64 + 262144, "Information", "Möchten Sie das Programm wirklich beenden?")
If $FrageBeenden = 6 Then
_Ende()
Else
ContinueLoop
EndIf
Case $ListeName
$Name = GUICtrlRead($ListeName)
_AllesAuslesen($Name)
Case $MenuItemAendern
$Datum = @MDAY & "-" & @MON & "-" & @YEAR
$Uhrzeit = @HOUR & ":" & @MIN
$NameAendern = InputBox("Eingabe erforderlich", "Bitte geben Sie den Name des fehlenden oder falschen Eintrags ein.")
If ($NameAendern = "") Then
MsgBox(16, "Fehler!", "Sie müssen einen Name eingeben!")
ContinueLoop
Else
$DurchwahlAendern = InputBox("Eingabe erforderlich", "Bitte geben Sie die Durchwahl des fehlenden oder falschen Eintrags ein.")
If ($DurchwahlAendern = "") Then
MsgBox(16, "Fehler!", "Sie müssen eine Durchwahl eingeben!")
ContinueLoop
Else
; Adresse für den SMTP-Server - Wichtig -
$SmtpServer = "s01.srv-net.de"
; Der Name der als Absender angezeigt wird
$FromName = @UserName
; Die Email Adresse, wo die Email herkommt
$FromAddress = "anfrage@fi-eurobbw.de"
; Die Empfänger Adresse - Wichtig -
$ToAddress = "support@fi-eurobbw.de"
; Der Betreff
$Subject = "Supportmeldung: Euro-BBW Telefonbuch - Fehlender oder Falscher Eintrag!"
; Die eigentliche Email
$Body = "Datum: " & $Datum & @CRLF & "Uhrzeit: " & $Uhrzeit & @CRLF & @CRLF & "Name: " & $NameAendern & @CRLF & "Durchwahl: " & $DurchwahlAendern & ""
; Der Anhang - frei lassen wenn es nicht benötigt wird
$AttachFiles = ""
; Die Adresse für CC - frei lassen wenn es nicht benötigt wird
$CcAddress = ""
; Die Adresse für BCC - frei lassen wenn es nicht benötigt wird
$BccAddress = ""
; Die Priorität der Email
$Importance = "Normal"
; Der Benutzername für den Absender - Wichtig -
$Username = "xxxxxx"
; Das Passwort für den Absender - Wichtig -
$Password = "xxxxxx"
; Der Port für die gesendete Mail - Standart 25 -
$IPPort = 25
; Aktiviert/Deaktiviert SSL - 1 für https -
$ssl = 0
$rc = _INetSmtpMailCom($SmtpServer, $FromName, $FromAddress, $ToAddress, $Subject, $Body, $AttachFiles, $CcAddress, $BccAddress, $Importance, $Username, $Password, $IPPort, $ssl)
If @error Then
MsgBox(16, "Nicht erfolgreich!", "Die Nachricht konnte nicht erfolgreich übermittelt werden." & @CRLF & "Bitte versuchen Sie es zu einem späteren Zeitpunkt erneut.")
Else
MsgBox(64, "Erfolgreich!", "Die Nachricht wurde erfolgreich übermittelt." & @CRLF & "Wir werden und in kürze um das Problem kümmern.")
EndIf
EndIf
EndIf
EndSwitch
WEnd
Func _Ende()
_MySQL_Free_Result($res)
_MySQL_Close($DBVerbindung)
_MySQL_EndLibrary()
Exit
EndFunc
Func _NameAuslesen($Control)
_MySQL_InitLibrary()
If @error Then
MsgBox(0, "Fehler!", "Kann die Datei ""libmysql.dll"" nicht finden!")
Exit
EndIf
$DBVerbindung = _MySQL_Init()
$connected = _MySQL_Real_Connect($DBVerbindung, "xxxxxx", "root", "", "helpdesk")
If $connected = 0 Then Exit MsgBox(16, "Verbindungs Fehler!", _MySQL_Error($DBVerbindung) & "!" & @LF & "Das Programm wird jetzt beendet !" & @LF & "Bitte kontaktieren Sie die Fachinformatik !")
$Abfrage = "SELECT name FROM telefon"
_MySQL_Real_Query($DBVerbindung, $Abfrage)
$res = _MySQL_Store_Result($DBVerbindung)
$array = _MySQL_Fetch_Result_StringArray($res)
For $i = 1 To UBound($array) - 1
GUICtrlSetData($Control, $array[$i][0])
Next
EndFunc
Func _AllesAuslesen($Name)
$AbfrageAllesAuslesen = "SELECT durchwahl FROM telefon WHERE name = '" & $Name & "'"
_MySQL_Real_Query($DBVerbindung, $AbfrageAllesAuslesen)
$res = _MySQL_Store_Result($DBVerbindung)
$array = _MySQL_Fetch_Result_StringArray($res)
GUICtrlSetData($InputName, $Name)
GUICtrlSetData($InputDurchwahl, $array[1][0])
EndFunc
Hier noch ein Screenshot:
[Blockierte Grafik: http://img408.imageshack.us/img408/645/screentelefonbuch.jpg]
Hier ist die Benutzeroberfläche für die Verwaltung der Datenbank
Code:
Spoiler anzeigen
#NoTrayIcon
Opt("GUICloseOnESC", 0)
#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <GUIListBox.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#include <MySQL.au3>
#region ### Anfang Globale Variablen ###
Global $DBVerbindung
#endregion ### Ende Globale Variablen ###
#region ### Anfang MySQL Dateien laden ###
_MySQL_InitLibrary()
If @error Then
MsgBox(0, "Fehler!", "Kann die Datei ""libmysql.dll"" nicht finden!")
Exit
EndIf
$DBVerbindung = _MySQL_Init()
$connected = _MySQL_Real_Connect($DBVerbindung, "xxxxx", "root", "", "helpdesk")
If $connected = 0 Then Exit MsgBox(16, "Verbindungs Fehler!", _MySQL_Error($DBVerbindung) & "!" & @LF & "Das Programm wird jetzt beendet !" & @LF & "Bitte kontaktieren Sie die Fachinformatik !")
#endregion ### Ende MySQL Dateien laden ###
#region ### Amfang Array Deklaration ###
Global $arGroupControls[3]
Global $arLabelControls[10]
Global $arInputControls[8]
Global $arButtonControls[3]
Global $arListControls[2]
#endregion ### Ende Array Deklaration ###
$FormHaupt = GUICreate("Telefonbuch Verwaltung", 702, 619, -1, -1, -1, -1)
GUISetFont(9, 400, 0, "Arial")
#region ### Anfang Array Group ##
$arGroupControls[0] = GUICtrlCreateGroup("Neuen Eintrag hinzufügen", 10, 10, 330, 175, -1, -1)
$arGroupControls[1] = GUICtrlCreateGroup("Vorhandenen Eintrag bearbeiten", 10, 200, 330, 409, -1, -1)
$arGroupControls[2] = GUICtrlCreateGroup("Einen Eintrag löschen", 360, 10, 330, 395, -1, -1)
#endregion ### Ende Array Group ###
#region ### Anfang Array Label ###
$arLabelControls[0] = GUICtrlCreateLabel("Name:", 30, 40, 50, 15, -1, -1)
$arLabelControls[1] = GUICtrlCreateLabel("Durchwahl:", 30, 90, 88, 15, -1, -1)
$arLabelControls[2] = GUICtrlCreateLabel("Eintrag auswählen:", 30, 240, 151, 15, -1, -1)
$arLabelControls[3] = GUICtrlCreateLabel("ID:", 30, 410, 112, 15, -1, -1)
$arLabelControls[4] = GUICtrlCreateLabel("Name:", 30, 460, 85, 15, -1, -1)
$arLabelControls[5] = GUICtrlCreateLabel("Durchwahl:", 30, 510, 113, 15, -1, -1)
$arLabelControls[6] = GUICtrlCreateLabel("Eintrag auswählen:", 380, 40, 115, 15, -1, -1)
$arLabelControls[7] = GUICtrlCreateLabel("ID:", 380, 210, 50, 15, -1, -1)
$arLabelControls[8] = GUICtrlCreateLabel("Name:", 380, 260, 50, 15, -1, -1)
$arLabelControls[9] = GUICtrlCreateLabel("Durchwahl:", 380, 310, 122, 15, -1, -1)
#endregion ### Ende Array Label ###
#region ### Anfang Array Input ###
$arInputControls[0] = GUICtrlCreateInput("", 30, 60, 290, 20, -1, 512)
$arInputControls[1] = GUICtrlCreateInput("", 30, 110, 290, 20, 8192, 512)
$arInputControls[2] = GUICtrlCreateInput("", 30, 430, 290, 20, 2048, 512)
$arInputControls[3] = GUICtrlCreateInput("", 30, 480, 290, 20, -1, 512)
$arInputControls[4] = GUICtrlCreateInput("", 30, 530, 290, 20, 8192, 512)
$arInputControls[5] = GUICtrlCreateInput("", 380, 230, 290, 20, 2048, 512)
$arInputControls[6] = GUICtrlCreateInput("", 380, 280, 290, 20, 2048, 512)
$arInputControls[7] = GUICtrlCreateInput("", 380, 330, 290, 20, 2048, 512)
#endregion ### Ende Array Input ###
#region ### Anfang Array Buttons ###
$arButtonControls[0] = GUICtrlCreateButton("Hinzufügen", 30, 140, 290, 30, -1, -1)
$arButtonControls[1] = GUICtrlCreateButton("Bearbeiten", 30, 560, 290, 30, -1, -1)
$arButtonControls[2] = GUICtrlCreateButton("Löschen", 380, 360, 290, 30, -1, -1)
#endregion ### Ende Array Buttons ###
#region ### Anfang Array List ###
$arListControls[0] = GUICtrlCreateList("", 30, 260, 290, 136, -1, 512)
$arListControls[1] = GUICtrlCreateList("", 380, 60, 290, 136, -1, 512)
#endregion ### Ende Array List ###
GUISetState(@SW_SHOW)
[/autoit] [autoit][/autoit] [autoit]_ListboxFuellen()
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE ; Fertig
$FrageBeenden = MsgBox(4 + 64 + 262144, "Information", "Möchten Sie das Programm ""Telefonbuch Verwaltung "" wirklich beenden?")
If $FrageBeenden = 6 Then
_Ende()
Else
ContinueLoop
EndIf
Case $arButtonControls[0] ; Fertig
$Name = GUICtrlRead($arInputControls[0])
$Durchwahl = GUICtrlRead($arInputControls[1])
If ($Name = "") Then
MsgBox(16, "Fehler!", "Sie müssen einen Namen angeben!")
ElseIf($Durchwahl = "") Then
MsgBox(16, "Fehler!", "Sie müssen eine Durchwahl angeben!")
Else
$Hinzufuegen = MsgBox(4 + 64 + 262144, "Information", "Möchten Sie den Eintrag """ & $Name & """ wirklich hinzufügen?")
If $Hinzufuegen = 6 Then
_Datensatzhinzufuegen($Name, $Durchwahl)
Else
ContinueLoop
EndIf
EndIf
Case $arButtonControls[1] ; Fertig
$ID = GUICtrlRead($arInputControls[2])
$Name = GUICtrlRead($arInputControls[3])
$Durchwahl = GUICtrlRead($arInputControls[4])
If ($Name = "") Then
MsgBox(16, "Fehler!", "Sie müssen einen Namen angeben!")
ElseIf($Durchwahl = "") Then
MsgBox(16, "Fehler!", "Sie müssen eine Durchwahl angeben!")
Else
$Bearbeiten = MsgBox(4 + 64 + 262144, "Information", "Möchten Sie den Eintrag """ & $Name & """ wirklich bearbeiten?")
If $Bearbeiten = 6 Then
_Datensatzbearbeiten($ID, $Name, $Durchwahl)
Else
ContinueLoop
EndIf
EndIf
Case $arButtonControls[2] ; Fertig
$ID = GUICtrlRead($arInputControls[5])
$Name = GUICtrlRead($arInputControls[6])
If ($ID = "") Then
MsgBox(16, "Fehler!", "Sie müssen einen Eintrag auswählen!")
Else
$Loeschen = MsgBox(4 + 64 + 262144, "Information", "Möchten Sie den Eintrag """ & $Name & """ wirklich löschen?")
If $Loeschen = 6 Then
_DatensatzLoeschen($ID, $Name)
Else
ContinueLoop
EndIf
EndIf
Case $arListControls[0] ; Fertig
$Name = GUICtrlRead($arListControls[0])
_DatensatzAuslesen($Name)
Case $arListControls[1] ; Fertig
$Name = GUICtrlRead($arListControls[1])
_DatensatzAuslesen1($Name)
EndSwitch
WEnd
Func _Ende()
Exit
EndFunc
Func _ListboxFuellen()
$Abfrage = "SELECT name FROM telefon"
_MySQL_Real_Query($DBVerbindung, $Abfrage)
$res = _MySQL_Store_Result($DBVerbindung)
$array = _MySQL_Fetch_Result_StringArray($res)
For $i = 1 To UBound($array) - 1
GUICtrlSetData($arListControls[0], $array[$i][0])
GUICtrlSetData($arListControls[1], $array[$i][0])
Next
EndFunc
Func _Datensatzhinzufuegen($Name, $Durchwahl)
$AbfrageSpeichern = "INSERT INTO telefon (name, durchwahl) VALUES ('" & $Name & "', '" & $Durchwahl & "')"
$Ok = _MySQL_Real_Query($DBVerbindung, $AbfrageSpeichern)
If $Ok = $MYSQL_SUCCESS Then
MsgBox(64, "Erfolgreich", "Der Eintrag """ & $Name & """ wurde erfolgreich hinzugefügt!")
Else
$errno = _MySQL_errno($DBVerbindung)
MsgBox(16, "Error:", $errno & @LF & _MySQL_Error($DBVerbindung) & @LF & "Der Eintrag wurde nicht hinzugefügt!")
EndIf
_InputLeeren()
_ListBoxLeeren()
_ListboxFuellen()
EndFunc
Func _DatensatzAuslesen($Name)
$AbfrageAllesAuslesen = "SELECT id, durchwahl FROM telefon WHERE name = '" & $Name & "'"
_MySQL_Real_Query($DBVerbindung, $AbfrageAllesAuslesen)
$res = _MySQL_Store_Result($DBVerbindung)
$array = _MySQL_Fetch_Result_StringArray($res)
GUICtrlSetData($arInputControls[2], $array[1][0])
GUICtrlSetData($arInputControls[3], $Name)
GUICtrlSetData($arInputControls[4], $array[1][1])
EndFunc
Func _DatensatzAuslesen1($Name)
$AbfrageAllesAuslesen = "SELECT id, durchwahl FROM telefon WHERE name = '" & $Name & "'"
_MySQL_Real_Query($DBVerbindung, $AbfrageAllesAuslesen)
$res = _MySQL_Store_Result($DBVerbindung)
$array = _MySQL_Fetch_Result_StringArray($res)
GUICtrlSetData($arInputControls[5], $array[1][0])
GUICtrlSetData($arInputControls[6], $Name)
GUICtrlSetData($arInputControls[7], $array[1][1])
EndFunc
Func _Datensatzbearbeiten($ID, $Name, $Durchwahl)
$AbfrageBearbeiten = "UPDATE telefon SET name = '" & $Name & "', durchwahl = '" & $Durchwahl & "' WHERE id = '" & $ID & "'"
$Ok = _MySQL_Real_Query($DBVerbindung, $AbfrageBearbeiten)
If $Ok = $MYSQL_SUCCESS Then
MsgBox(64, "Erfolgreich", "Der Eintrag wurde erfolgreich bearbeitet!")
Else
$errno = _MySQL_errno($DBVerbindung)
MsgBox(16, "Error:", $errno & @LF & _MySQL_Error($DBVerbindung) & @LF & "Der Eintrag wurde nicht bearbeitet!")
EndIf
_InputLeeren()
_ListBoxLeeren()
_ListboxFuellen()
EndFunc
Func _DatensatzLoeschen($ID, $Name)
$AbfrageEntfernen = "DELETE FROM telefon WHERE id = '" & $ID & "'"
$Erfolg = _MySQL_Real_Query($DBVerbindung, $AbfrageEntfernen)
If $Erfolg = $MYSQL_SUCCESS Then
MsgBox(64, "Erfolgreich", "Der Eintrag wurde erfolgreich gelöscht!")
Else
$errno = _MySQL_errno($DBVerbindung)
MsgBox(16, "Error:", $errno & @LF & _MySQL_Error($DBVerbindung) & @LF & "Der Eintrag wurde nicht gelöscht!")
EndIf
_InputLeeren()
_ListBoxLeeren()
_ListboxFuellen()
EndFunc
Func _InputLeeren()
For $i = 0 To UBound($arInputControls) - 1
GUICtrlSetData($arInputControls[$i], "")
Next
EndFunc
Func _ListBoxLeeren()
_GUICtrlListBox_ResetContent($arListControls[0])
_GUICtrlListBox_ResetContent($arListControls[1])
EndFunc
Screenshot:
[Blockierte Grafik: http://img41.imageshack.us/img41/1959/verwaltung.png]
MfG
Hier der Link: Telefonbuch
Musst es leider wo anders hochladen, habe ich immer die Meldung bekommen, das es zu groß ist.