Was tut es?
Döner bzw. Pizzabestellungen annehmen und auf eine .ini Datei auf einem Server schreiben.
Mit dem Admin-Tool kann man sich die Bestellung(en) eines Nutzers ausgeben und bei Bedarf löschen.
Alte Updates:
Spoiler anzeigen
30.01.13
Kleines Update
Fehlerroutinen verbessert und neue hinzugefügt.
AdminTool.
Versionen.
04.02.2013
Version 4 mitlerweile:
Kosten hinzugefügt (werden aus der Serverini gelesen)
Admintool verbessert
Aktuelles Update:
Version 5:
Bugfixes
Update Programm hinzugefügt welches die Dönerbestellung.exe aktuell hält.
Liste mit Übersicht über Computer auf aktuellem Stand
Includes mit "Organize Includes" optimiert
Export-Funktion für Admintool hinzugefügt
Fehlermeldung wenn das Programm auf dem Server ausgeführt wird.
Begonnen zu kommentieren
Über Feedback würde ich mich sehr freuen
Spoiler anzeigen
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <date.au3>
#include <GuiTab.au3>
#include <ListBoxConstants.au3>
#include <GUIListBox.au3>
#include <WinAPI.au3>
#include <Misc.au3>
Global $iniserv = "\\Serverpfad\bestellungen.ini" ;<== Online!!
;Global $iniserv = @WorkingDir & "\bestellungen.ini" ;<== Pfad zur Datei in der die Bestellungen gespeichert werden!
Global $cache = @WorkingDir & "\cache.ini" ;<== Wird von allein angelegt
Global $iniloc = @WorkingDir & "\doener.ini" ;<== Wird angelegt wenn die Eingaben gespeichert werden sollen
#region ### START Koda GUI section ### Form=
;Sensegui
Global $show = False
Global $indexB = -1
Global $SenseGui, $SenseCtrl, $guiBox, $box
Global $POSSenseGui[2]
Global $aData[20] = ["Pizzabrot", "Margherita", "Funghi", "Prosciutto", "Salami", "Sardellen", "Americana", "Regina", "Dönerpizza", "Allerlei", "Vegetaria", "Hawaii", "Frutti di Mare", "Calzone", "Tonno", "Quattro Formaggio", "Caprese", "Bavaria", "Spinat", "Broccoli"]
;sensegui
$guiBox = GUICreate('', 180, 100, 100, 600, BitOR($WS_SIZEBOX, $WS_POPUP), BitOR($WS_EX_TOPMOST, $WS_EX_TOOLWINDOW))
$box = _GUICtrlListBox_Create($guiBox, '', 0, 0, 180, 101, BitOR($LBS_SORT, 0x00B00002))
; ListBox muß 1 Pixel höher als GUI sein - sonst fehlerhafte Darstellung <<<<<<<<<<<<<<<< BEACHTEN !!!!!! >>>>>>>>>>>>>>>>>>>>>>>>>>
For $i = 0 To UBound($aData) - 1 ; falls Daten mit _FileReadToArray gelesen werden: StartIndex=1
_GUICtrlListBox_AddString($box, $aData[$i])
Next
GUIRegisterMsg($WM_COMMAND, "MY_WM_COMMAND")
GUIRegisterMsg($WM_MOVE, "_WM_MOVE")
GUIRegisterMsg(0x231, "_WM_ENTERSIZEMOVE")
#endregion ### START Koda GUI section ### Form=
; sense
[/autoit] [autoit][/autoit] [autoit];##############################################################################################################################################################
; Abfragen vor Programmausführung zur Fehlervermeidung
$dings = STringsplit(@WorkingDir,"\")
If $dings[1] <> "C:" Then ; Wenn das Programm auf dem Server ausgeführt wird > Fehler
MsgBox(0,"Fehler","Script bitte LOKAL ausführen!")
Exit
EndIf
If IniRead($iniserv, "Bestellung", "date", "") = "" Then ; Wenn in der Server Ini keine Bestellung eingetragen ist > Fehler
MsgBox(0, "", "Keine Bestellungen in nächster Zeit")
Exit
ElseIf IniRead($iniserv, "Bestellung", "version", "0") > 4 Then ; Wenn zwar eine Bestellung ist aber ein veraltetes Programm benutzt wird
$result = MsgBox(52,"Veraltete Version","Sie benutzen eine veraltete Version des Bestellprogramms." & @CRLF & "Das Bestellprogramm jetzt updaten? ",0)
switch $result
case 6 ;YES
Run(@WorkingDir&"\update.exe") ; die Update.exe aufrufen um das neueste Programm zu beziehen
Sleep(100)
Exit
case 7 ;NO
Exit
endswitch
[/autoit] [autoit][/autoit] [autoit];_updater()
Exit
Else
;##############################################################################################################################################################
; Gui-Aufbau
$Form1 = GUICreate("Bestellung vom: " & IniRead($iniserv, "Bestellung", "date", "0"), 419, 307, 500, 170)
GUICtrlCreateLabel("Vorname:", 10, 5)
$vorname = GUICtrlCreateInput("", 60, 5, 110, 21)
GUICtrlCreateLabel("Nachname:", 175, 5)
$nachname = GUICtrlCreateInput("", 240, 5, 110, 21)
$date = GUICtrlCreateLabel("Datum: " & _NowDate(), 10, 30, 100, 17)
$bdate = GUICtrlCreateLabel("Nächste Bestellung: " & IniRead($iniserv, "Bestellung", "date", "0"), 140, 30, 180, 17)
GUICtrlCreateLabel("Bestellung möglich bis Mittag des Vortages", 140, 45, 300, 20)
$save = GUICtrlCreateCheckbox("Eingabe speichern?", 32, 220, 150, 17)
$bestell = GUICtrlCreateButton("Bestellen!", 32, 240, 345, 65)
$kosten = GUICtrlCreateLabel("Kosten: ", 200, 220)
$tabs = GUICtrlCreateTab(0, 50, 419, 170)
$tab1 = GUICtrlCreateTabItem("Döner")
GUIStartGroup()
$d1 = GUICtrlCreateRadio("Döner", 88, 115, 113, 17)
$d2 = GUICtrlCreateRadio("Dürüm", 232, 115, 113, 17)
GUIStartGroup()
$ns = GUICtrlCreateRadio("nicht scharf", 32, 136, 113, 17)
$ms = GUICtrlCreateRadio("mittel scharf", 176, 136, 113, 17)
$ss = GUICtrlCreateRadio("sehr scharf", 320, 136, 80, 17)
$sonder = GUICtrlCreateInput("", 90, 170, 100)
GUICtrlCreateLabel("Sonderwünsche: ", 10, 170, 80)
GUICtrlCreateLabel("Stück: ", 240, 170, 80)
$stuck = GUICtrlCreateCombo("1", 280, 170, 50, 120)
GUICtrlSetData(-4, "2|3|4|x", "1")
;Pizza
$tab2 = GUICtrlCreateTabItem("Pizza")
GUICtrlCreateLabel("Pizza:", 110, 80)
$pname = GUICtrlCreateInput("", 150, 80, 90, 17)
$pklein = GUICtrlCreateRadio("klein", 100, 100)
$pmittel = GUICtrlCreateRadio("mittel", 200, 100)
$pgro = GUICtrlCreateRadio("groß", 300, 100)
;Kosten auslesen:
$kpk = IniRead($iniserv, "geld", "pklein", "0,00")
$kpm = IniRead($iniserv, "geld", "pmittel", "0,00")
$kpg = IniRead($iniserv, "geld", "pgro", "0,00")
$kdoener = IniRead($iniserv, "geld", "döner", "0,00")
$kdueruem = IniRead($iniserv, "geld", "dürüm", "0,00")
GUICtrlCreateTabItem("")
$SenseGui = $Form1 ; <== Für Allgemeingültigkeit Zuweisung an $SenseGui
$SenseCtrl = $pname ; <== Für Allgemeingültigkeit Zuweisung an $SenseCtrl
$hInput = GUICtrlGetHandle($pname)
GUISetState(@SW_SHOW)
#endregion ### END Koda GUI section ###
EndIf
;##############################################################################################################################################################
; Auslesen von Startoptionen aus der lokalen Döner.ini
_vorarbeit()
;##############################################################################################################################################################
; Programmstart
While 1
$nMsg = GUIGetMsg()
_ChooseBox()
Switch $nMsg
Case $GUI_EVENT_CLOSE
_cacheclean()
Exit
Case $bestell
If GUICtrlRead($vorname) = "" Or GUICtrlRead($nachname) = "" Then
MsgBox(0, "Name vergessen?", "Bitte Vor- und/oder Nachname eingeben!")
Else
_cacheclean()
Sleep(100)
_cache()
$n1 = IniRead($cache, "Name", "vorname", "")
$n2 = IniRead($cache, "Name", "nachname", "")
$e1 = IniRead($cache, "Bestellung", "essen", "")
$g1 = IniRead($cache, "Bestellung", "scharf", "")
$anzahl = IniRead($iniserv, $n2 & " " & $n1, "anzahl", "")
_dd()
If BitAND($e1, 1) Or BitAND($e1, 2) Or BitAND($e1, 3) Then
If $e1 = 1 Then
$ecount = "Döner"
Else
$ecount = "Dürüm"
EndIf
If $g1 = 1 Then
$gcount = "nicht scharf"
ElseIf $g1 = 2 Then
$gcount = "mittel scharf"
ElseIf $g1 = 3 Then
$gcount = "sehr scharf"
EndIf
Else
$ecount = IniRead($cache, "Pizza", "name", 0)
$gcount = IniRead($cache, "Pizza", "gr", 0)
EndIf
If BitAND(GUICtrlRead($d1), $GUI_CHECKED) Or BitAND(GUICtrlRead($d2), $GUI_CHECKED) Or BitAND(GUICtrlRead($pklein), $GUI_CHECKED) Or BitAND(GUICtrlRead($pmittel), $GUI_CHECKED) Or BitAND(GUICtrlRead($pgro), $GUI_CHECKED) Then
$check = MsgBox(4, "Letzer Schritt!", $ecount & " " & $gcount & " wirklich bestellen?")
If $check = "6" Then
If BitAND(GUICtrlRead($save), $GUI_CHECKED) Then
_saver()
EndIf
_cache()
_server()
$anzahl = $anzahl + 1
IniWrite($iniserv, $n2 & " " & $n1, "anzahl", $anzahl)
MsgBox(0, "Bestellt", $ecount & " " & $gcount & " wurde bestellt!")
Exit
EndIf
Else
MsgBox(0, "Error", "Keinen hunger?")
EndIf
EndIf
Case $d1 Or $d2 Or $pklein Or $pmittel Or $pgro
_geld()
EndSwitch
WEnd
Func _vorarbeit()
$l1 = IniRead($iniloc, "Name", "Vorname", "")
GUICtrlSetData($vorname, $l1)
$l2 = IniRead($iniloc, "Name", "Nachname", "")
GUICtrlSetData($nachname, $l2)
If IniRead($iniloc, "Flag", "flag", "") = "2" Then
_GUICtrlTab_ActivateTab($tabs, 1)
_GUICtrlTab_SetCurSel($tabs, 1)
For $i = 0 To 4
Send("{Tab}")
Next
GUICtrlSetData($pname, IniRead($iniloc, "Pizza", "pizza", "0"))
$gr = IniRead($iniloc, "Pizza", "gr", "0")
If $gr = "1" Then
GUICtrlSetState($pklein, $GUI_CHECKED)
ElseIf $gr = "2" Then
GUICtrlSetState($pmittel, $GUI_CHECKED)
ElseIf $gr = "3" Then
GUICtrlSetState($pgro, $GUI_CHECKED)
EndIf
Else
GUICtrlSetData($sonder, IniRead($iniloc, "Wunsch", "Sonderwunsch", ""))
$doner = IniRead($iniloc, "Bestellung", "essen", "0")
If $doner = "1" Then
GUICtrlSetState($d1, $GUI_CHECKED)
ElseIf $doner = "2" Then
GUICtrlSetState($d2, $GUI_CHECKED)
EndIf
$scharf = IniRead($iniloc, "Bestellung", "scharf", "0")
If $scharf = "1" Then
GUICtrlSetState($ns, $GUI_CHECKED)
ElseIf $scharf = "2" Then
GUICtrlSetState($ms, $GUI_CHECKED)
ElseIf $scharf = "3" Then
GUICtrlSetState($ss, $GUI_CHECKED)
EndIf
EndIf
EndFunc ;==>_vorarbeit
Func _cache()
IniWrite($cache, "Name", "vorname", GUICtrlRead($vorname))
IniWrite($cache, "Name", "nachname", GUICtrlRead($nachname))
If GUICtrlRead($tabs) = 1 Then ;falls der Tabreiter "Pizza" ausgewählt ist
IniWrite($cache, "Pizza", "name", GUICtrlRead($pname))
If BitAND(GUICtrlRead($pklein), $GUI_CHECKED) Then
IniWrite($cache, "Pizza", "gr", "klein")
ElseIf BitAND(GUICtrlRead($pmittel), $GUI_CHECKED) Then
IniWrite($cache, "Pizza", "gr", "mittel")
Else
IniWrite($cache, "Pizza", "gr", "groß")
EndIf
Else ;sonst bleibt nur der Tabreiter "Döner"
If BitAND(GUICtrlRead($d1), $GUI_CHECKED) Then
IniWrite($cache, "Bestellung", "essen", "1")
Else
IniWrite($cache, "Bestellung", "essen", "2")
EndIf
If BitAND(GUICtrlRead($ns), $GUI_CHECKED) Then
IniWrite($cache, "Bestellung", "scharf", "1")
ElseIf BitAND(GUICtrlRead($ms), $GUI_CHECKED) Then
IniWrite($cache, "Bestellung", "scharf", "2")
Else
IniWrite($cache, "Bestellung", "scharf", "3")
EndIf
EndIf
EndFunc ;==>_cache
Func _geld()
If GUICtrlRead($tabs) = 1 Then
If BitAND(GUICtrlRead($pklein), $GUI_CHECKED) Then
GUICtrlSetData($kosten, "Kosten: " & $kpk & "€")
ElseIf BitAND(GUICtrlRead($pmittel), $GUI_CHECKED) Then
GUICtrlSetData($kosten, "Kosten: " & $kpm & "€")
ElseIf BitAND(GUICtrlRead($pgro), $Gui_Checked) Then
GUICtrlSetData($kosten, "Kosten: " & $kpg & "€")
EndIf
Else
If BitAND(GUICtrlRead($d1), $GUI_CHECKED) Then
GUICtrlSetData($kosten, "Kosten: " & $kdoener * GUICtrlRead($stuck) & "0 €")
ElseIf BitAND(GUICtrlRead($d2), $Gui_Checked) Then
GUICtrlSetData($kosten, "Kosten: " & $kdueruem * GUICtrlRead($stuck) & "0 €")
EndIf
EndIf
EndFunc
Func _saver()
IniWrite($iniloc, "Name", "vorname", GUICtrlRead($vorname))
IniWrite($iniloc, "Name", "nachname", GUICtrlRead($nachname))
If GUICtrlRead($tabs) = 1 Then
IniWrite($iniloc, "pizza", "pizza", GUICtrlRead($pname))
IniWrite($iniloc, "flag", "Flag", "2")
IniDelete($iniloc, "Bestellung")
If BitAND(GUICtrlRead($pklein), $GUI_CHECKED) Then
IniWrite($iniloc, "pizza", "gr", "1")
ElseIf BitAND(GUICtrlRead($pmittel), $GUI_CHECKED) Then
IniWrite($iniloc, "pizza", "gr", "2")
Else
IniWrite($iniloc, "pizza", "gr", "3")
EndIf
Else
IniDelete($iniloc, "Flag")
IniWrite($iniloc, "Wunsch", "Sonderwunsch", GUICtrlRead($sonder))
If BitAND(GUICtrlRead($d1), $GUI_CHECKED) Then
IniWrite($iniloc, "Bestellung", "essen", "1")
ElseIf BitAND(GUICtrlRead($d2), $GUI_CHECKED) Then
IniWrite($iniloc, "Bestellung", "essen", "2")
Else
MsgBox(0, "Error", "Keine Bestellung!")
EndIf
If BitAND(GUICtrlRead($ns), $GUI_CHECKED) Then
IniWrite($iniloc, "Bestellung", "scharf", "1")
ElseIf BitAND(GUICtrlRead($ms), $GUI_CHECKED) Then
IniWrite($iniloc, "Bestellung", "scharf", "2")
ElseIf BitAND(GUICtrlRead($ss), $GUI_CHECKED) Then
IniWrite($iniloc, "Bestellung", "scharf", "3")
Else
MsgBox(0, "Error", "Keine Bestellung!2")
EndIf
EndIf
EndFunc ;==>_saver
Func _server()
$n1 = IniRead($cache, "Name", "vorname", "0")
$n2 = IniRead($cache, "Name", "nachname", "0")
If GUICtrlRead($tabs) = 1 Then
If BitAND(GUICtrlRead($pklein), $GUI_CHECKED) Then
$counter = IniRead($iniserv, "Pizza", GUICtrlRead($pname) & " klein", 0)
$counter = $counter + 1
IniWrite($iniserv, "Pizza", GUICtrlRead($pname) & " klein", $counter)
IniWrite($iniserv, $n2 & " " & $n1, "Bestellung~" & $anzahl, "Pizza\" & GUICtrlRead($pname) & " klein " & GUICtrlRead($sonder))
IniWrite($iniserv, $n2 & " " & $n1, "Zeit~" & $anzahl, " Computername: " & @ComputerName & " " & _NowDate() & " " & _NowTime())
ElseIf BitAND(GUICtrlRead($pmittel), $GUI_CHECKED) Then
$counter = IniRead($iniserv, "Pizza", GUICtrlRead($pname) & " mittel", 0)
$counter = $counter + 1
IniWrite($iniserv, "Pizza", GUICtrlRead($pname) & " mittel", $counter)
IniWrite($iniserv, $n2 & " " & $n1, "Bestellung~" & $anzahl, "Pizza\" & GUICtrlRead($pname) & " mittel " & GUICtrlRead($sonder))
IniWrite($iniserv, $n2 & " " & $n1, "Zeit~" & $anzahl, " Computername: " & @ComputerName & " " & _NowDate() & " " & _NowTime())
Else
$counter = IniRead($iniserv, "Pizza", GUICtrlRead($pname) & " groß", 0)
$counter = $counter + 1
IniWrite($iniserv, "Pizza", GUICtrlRead($pname) & " groß", $counter)
IniWrite($iniserv, $n2 & " " & $n1, "Bestellung~" & $anzahl, "Pizza\" & GUICtrlRead($pname) & " groß " & GUICtrlRead($sonder))
IniWrite($iniserv, $n2 & " " & $n1, "Zeit~" & $anzahl, " Computername: " & @ComputerName & " " & _NowDate() & " " & _NowTime())
EndIf
Else
$e1 = IniRead($cache, "Bestellung", "essen", "0")
$g1 = IniRead($cache, "Bestellung", "scharf", "0")
If $e1 = 1 Then
$ecount = "Döner"
Else
$ecount = "Dürüm"
EndIf
If $g1 = 1 Then
ElseIf $g1 = 2 Then
$gcount = "mittel scharf"
Else
$gcount = "sehr scharf"
EndIf
IniWrite($iniserv, $n2 & " " & $n1, "Bestellung~" & $anzahl, GUICtrlRead($stuck) & " x " & $ecount & " " & $gcount & " " & GUICtrlRead($sonder))
IniWrite($iniserv, $n2 & " " & $n1, "Zeit~" & $anzahl, " Computername: " & @ComputerName & " " & _NowDate() & " " & _NowTime())
$d1ns = IniRead($iniserv, "essen", "d1ns", "0")
$d1ms = IniRead($iniserv, "essen", "d1ms", "0")
$d1ss = IniRead($iniserv, "essen", "d1ss", "0")
$d2ns = IniRead($iniserv, "essen", "d2ns", "0")
$d2ms = IniRead($iniserv, "essen", "d2ms", "0")
$d2ss = IniRead($iniserv, "essen", "d2ss", "0")
;Döner ohne scharf
If BitAND(GUICtrlRead($d1), $GUI_CHECKED) And BitAND(GUICtrlRead($ns), $GUI_CHECKED) Then
IniWrite($iniserv, "essen", "d1ns", $d1ns + GUICtrlRead($stuck))
;Döner mittel
ElseIf BitAND(GUICtrlRead($d1), $GUI_CHECKED) And BitAND(GUICtrlRead($ms), $GUI_CHECKED) Then
IniWrite($iniserv, "essen", "d1ms", $d1ms + GUICtrlRead($stuck))
;Döner scharf
ElseIf BitAND(GUICtrlRead($d1), $GUI_CHECKED) And BitAND(GUICtrlRead($ss), $GUI_CHECKED) Then
IniWrite($iniserv, "essen", "d1ss", $d1ss + GUICtrlRead($stuck))
;Dürüm nicht scharf
ElseIf BitAND(GUICtrlRead($d2), $GUI_CHECKED) And BitAND(GUICtrlRead($ns), $GUI_CHECKED) Then
IniWrite($iniserv, "essen", "d2ns", $d2ns + GUICtrlRead($stuck))
;Dürüm normal
ElseIf BitAND(GUICtrlRead($d2), $GUI_CHECKED) And BitAND(GUICtrlRead($ms), $GUI_CHECKED) Then
IniWrite($iniserv, "essen", "d2ms", $d2ms + GUICtrlRead($stuck))
;Dürüm scharf
ElseIf BitAND(GUICtrlRead($d2), $GUI_CHECKED) And BitAND(GUICtrlRead($ss), $GUI_CHECKED) Then
IniWrite($iniserv, "essen", "d2ss", $d2ss + GUICtrlRead($stuck))
EndIf
EndIf
EndFunc ;==>_server
Func _dd()
if $anzahl = 0 Then
IniWrite($iniserv, $n2 &" "& $n1,"anzahl", "0")
Else
$bestellung = IniRead($iniserv,$n2 & " " & $n1,"Bestellung~"&$anzahl-1,"")
MsgBox(0,"","Sie haben bereits "& $bestellung&" bestellt!")
EndIf
EndFunc
[/autoit] [autoit][/autoit] [autoit]Func _cacheclean()
IniDelete($cache, "Name")
IniDelete($cache, "Bestellung")
IniDelete($cache, "Pizza")
EndFunc ;==>_cacheclean
#region - SenseFuncs
[/autoit] [autoit][/autoit] [autoit]Func _ChooseBox()
If Not $show Or ControlGetText($SenseGui, '', $SenseCtrl) = "" Then
GUISetState(@SW_HIDE, $guiBox)
$show = False
Return
EndIf
If _IsPressed('0D') Then ; ENTER
ControlSetText($SenseGui, '', $SenseCtrl, _GUICtrlListBox_GetText($box, $indexB))
GUISetState(@SW_HIDE, $guiBox)
$show = False
ElseIf _IsPressed('1B') Then ; ESC
GUISetState(@SW_HIDE, $guiBox)
$show = False
ElseIf _IsPressed('26') Then ; UP
If $indexB > 0 Then
$indexB -= 1
_GUICtrlListBox_SetCurSel($box, $indexB)
Sleep(90)
EndIf
ElseIf _IsPressed('28') Then ; DOWN
If $indexB < _GUICtrlListBox_GetCount($box) - 1 Then
$indexB += 1
_GUICtrlListBox_SetCurSel($box, $indexB)
Sleep(90)
EndIf
EndIf
EndFunc ;==>_ChooseBox
Func MY_WM_COMMAND($hWnd, $Msg, $wParam, $lParam)
Local $nNotifyCode = BitShift($wParam, 16)
Local $hCtrl = $lParam
Local $hSenseCtrl = $SenseCtrl
If Not IsHWnd($hSenseCtrl) Then $hSenseCtrl = GUICtrlGetHandle($hSenseCtrl)
If ($nNotifyCode = 1024 Or $nNotifyCode = 6) And $hCtrl = $hSenseCtrl Then
Local $str = ControlGetText($SenseGui, '', $SenseCtrl)
$indexB = _GUICtrlListBox_FindString($box, $str)
_GUICtrlListBox_SetCurSel($box, $indexB)
$caret = _CaretPos()
If Not @error And Not $show Then
If $caret[3] + $caret[4] - 95 < 0 Then ; Platz für Liste über dem Ctrl ausreichend?
WinMove($guiBox, '', $caret[0], $caret[1] + 30) ; Versatz 25 (Ctrlhöhe+5) unter y vom Ctrl
Else
WinMove($guiBox, '', $caret[0] - 5, $caret[1] + 15) ; Versatz 95 (Boxhöhe+10) über y vom Ctrl
EndIf
GUISetState(@SW_SHOWNOACTIVATE, $guiBox)
$show = True
EndIf
ElseIf $hCtrl = $box And $nNotifyCode = 1 Then
$indexB = _GUICtrlListBox_GetCurSel($box)
ControlSetText($SenseGui, '', $SenseCtrl, _GUICtrlListBox_GetText($box, $indexB))
GUISetState(@SW_HIDE, $guiBox)
$show = False
ElseIf $show And $nNotifyCode = 512 And $hCtrl = $lParam And Not $hCtrl = $box Then
GUISetState(@SW_HIDE, $guiBox)
$show = False
EndIf
Return $GUI_RUNDEFMSG
EndFunc ;==>MY_WM_COMMAND
Func _WM_ENTERSIZEMOVE($hWnd)
If $hWnd = $SenseGui Then $POSSenseGui = WinGetPos($SenseGui)
EndFunc ;==>_WM_ENTERSIZEMOVE
Func _WM_MOVE($hWnd)
If $hWnd = $SenseGui Then
Local $pos = WinGetPos($guiBox)
Local $postemp = WinGetPos($SenseGui)
WinMove($guiBox, "", $pos[0] - ($POSSenseGui[0] - $postemp[0]), $pos[1] - ($POSSenseGui[1] - $postemp[1]))
$POSSenseGui = WinGetPos($SenseGui)
EndIf
EndFunc ;==>_WM_MOVE
Func _CaretPos()
Local $old = Opt("CaretCoordMode", 0) ;relative mode
Local $c = WinGetCaretPos() ;relative caret coords
Local $w = WinGetPos("") ;window's coords
Local $f = ControlGetFocus("", "") ;text region "handle"
Local $e = ControlGetPos("", "", $f) ;text region coords
Local $h = ControlGetHandle("", "", $f) ;Ctrl-Handle
Local $t[5]
If IsArray($c) And IsArray($w) And IsArray($e) Then
If _WinAPI_IsClassName($SenseCtrl, 'Edit') Then ; Input wird als Edit-Class erkannt
$t[0] = $c[0] + $w[0] + $e[0]
ElseIf _WinAPI_IsClassName($SenseCtrl, 'ComboBox') Then
$t[0] = $w[0] + $e[0]
EndIf
$t[1] = $c[1] + $w[1] + $e[1]
$t[2] = $h
$t[3] = $w[1]
$t[4] = $e[1]
Opt("CaretCoordMode", $old)
Return $t ;absolute screen coords of caret cursor
Else
Opt("CaretCoordMode", $old)
SetError(1)
EndIf
EndFunc ;==>_CaretPos
#endregion - SenseFuncs
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit]Admintool (im Aufbau)
Spoiler anzeigen
#include <GUIConstantsEx.au3>
#include <GuiListView.au3>
#region ### START Koda GUI section ### Form=
Global $iniserv = "\\Serverpfad\bestellungen.ini" ;<== Online!!
;Global $iniserv = @WorkingDir & "\bestellungen.ini" ;<== Pfad zur Datei in der die Bestellungen gespeichert werden!
$Form1 = GUICreate("Admintool", 615, 932, 2319, 163)
$button1 = GUICtrlCreateButton("go", 280, 10, 100, 30)
$del = GUICtrlCreateButton("Delete", 10, 280, 100, 30)
$out = GUICtrlCreateListView("out | out ", 10, 50, 500, 200)
$vorname = GUICtrlCreateInput("Vorname", 10, 10, 100, 25)
$nachname = GUICtrlCreateInput("Nachname", 180, 10, 100, 25)
$andre = GUICtrlCreateListView("Speise: | Anzahl:", 10, 340, 500, 200)
$export = GUICtrlCreateButton("Exportieren", 16, 560, 97, 33)
$pizza = ""
$auswal_array = ""
$ListViewSel = ""
$y = ""
;GUICtrlSetData(-1, "Edit1")
GUISetState(@SW_SHOW)
#endregion ### END Koda GUI section ###
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $button1
_search()
_emptydel()
_all()
Case $del
_del()
_emptydel()
case $export
_export()
EndSwitch
WEnd
func _emptydel() ;<= Löscht leere Zählvariablen in der .ini
$flt = IniReadSection($iniserv,"essen")
If @error Then
;nothing
Else
For $i = 1 to $flt[0][0]
If $flt[$i][1] = 0 Then
IniDelete($iniserv,"essen",$flt[$i][0])
EndIf
Next
EndIf
$pu = IniReadSection($iniserv,"Pizza")
If @error Then
;nothing
Else
For $i = 1 to $pu[0][0]
ConsoleWrite("Key ="&$pu[$i][0]&" Value: "&$pu[$i][1]&@CRLF)
If $pu[$i][1] = 0 Then
IniDelete($iniserv,"Pizza",$pu[$i][0])
EndIf
Next
EndIf
EndFunc
Func _search()
_GUICtrlListView_DeleteAllItems($out)
$var = IniReadSection($iniserv, GUICtrlRead($nachname) & " " & GUICtrlRead($vorname))
If @error Then
GUICtrlCreateListViewItem("Keine Daten!", $out)
Else
For $i = 2 To $var[0][0]
GUICtrlCreateListViewItem($var[$i][0] & "|" & $var[$i][1], $out)
Next
EndIf
EndFunc ;==>_search
[/autoit] [autoit][/autoit] [autoit]Func _del()
$ListViewSel = _GUICtrlListView_GetSelectionMark($out)
$auswahl_text = _GUICtrlListView_GetItemText($out, $ListViewSel)
$namen_abfrage = IniReadSection($iniserv, GUICtrlRead($nachname) & " " & GUICtrlRead($vorname))
$y = StringSplit($auswahl_text, "~")
If $y[0] = 1 Then
MsgBox(0, "", "Unkorrekte Daten Lan!")
ElseIf $namen_abfrage[0][0] <= 3 Then
_deluser()
Else
[/autoit] [autoit][/autoit] [autoit]IniDelete($iniserv, GUICtrlRead($nachname) & " " & GUICtrlRead($vorname), _GUICtrlListView_GetItemText($out, $ListViewSel))
[/autoit] [autoit][/autoit] [autoit]IniDelete($iniserv, GUICtrlRead($nachname) & " " & GUICtrlRead($vorname), "Zeit~" & $y[2])
[/autoit] [autoit][/autoit] [autoit]$auswal_array = _GUICtrlListView_GetItemTextArray($out, $ListViewSel)
$pizza = StringSplit($auswal_array[2], "\")
If $pizza[1] = "Pizza" Then
[/autoit] [autoit][/autoit] [autoit]_delpizza()
Else
_deldoener()
EndIf
_emptydel()
_search()
_all()
EndIf
EndFunc ;==>_del
Func _deluser()
$abfrage = MsgBox(4, "Benutzer löschen?", "Benutzer komplett entfernen?")
If $abfrage = 6 Then
$auswal_array = _GUICtrlListView_GetItemTextArray($out, $ListViewSel)
$pizza = StringSplit($auswal_array[2], "\")
If $pizza[1] = "Pizza" Then
_delpizza()
Else
_deldoener()
EndIf
IniDelete($iniserv, GUICtrlRead($nachname) & " " & GUICtrlRead($vorname))
Else
IniDelete($iniserv, GUICtrlRead($nachname) & " " & GUICtrlRead($vorname), _GUICtrlListView_GetItemText($out, $ListViewSel))
IniDelete($iniserv, GUICtrlRead($nachname) & " " & GUICtrlRead($vorname), "Zeit~" & $y[2])
$auswal_array = _GUICtrlListView_GetItemTextArray($out, $ListViewSel)
$pizza = StringSplit($auswal_array[2], "\")
If $pizza[1] = "Pizza" Then
_delpizza()
Else
_deldoener()
EndIf
EndIf
[/autoit] [autoit][/autoit] [autoit]_search()
_all()
EndFunc ;==>_deluser
func _export()
$all = _GUICtrlListView_GetItemCount($andre)
For $i = 0 to $all -1
If _GuiCtrlListView_GetItemText($andre,$i,0) = "d1ns" Then
ConsoleWRite(_GuiCtrlListView_GetItemText($andre,$i,1)&" x Döner nicht scharf"&@CRLF)
ElseIf _GuiCtrlListView_GetItemText($andre,$i,0) = "d1ms" Then
ConsoleWRite(_GuiCtrlListView_GetItemText($andre,$i,1)&" x Döner mittel scharf"&@CRLF)
ElseIf _GuiCtrlListView_GetItemText($andre,$i,0) = "d1ss" Then
ConsoleWRite(_GuiCtrlListView_GetItemText($andre,$i,1)&" x Döner sehr scharf"&@CRLF)
ElseIf _GuiCtrlListView_GetItemText($andre,$i,0) = "d2ns" Then
ConsoleWRite(_GuiCtrlListView_GetItemText($andre,$i,1)&" x Dürüm nicht scharf"&@CRLF)
ElseIf _GuiCtrlListView_GetItemText($andre,$i,0) = "d2ms" Then
ConsoleWRite(_GuiCtrlListView_GetItemText($andre,$i,1)&" x Dürüm mittel scharf"&@CRLF)
ElseIf _GuiCtrlListView_GetItemText($andre,$i,0) = "d2ss" Then
ConsoleWRite(_GuiCtrlListView_GetItemText($andre,$i,1)&" x Dürüm sehr scharf"&@CRLF)
Else
ConsoleWrite(_GuiCtrlListView_GetItemText($andre,$i,1)&" x "&_GuiCtrlListView_GetItemText($andre,$i,0)&@CRLF)
EndIf
Next
EndFunc
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]Func _delpizza()
$globanzahl = IniRead($iniserv, GUICtrlRead($nachname) & " " & GUICtrlRead($vorname), "anzahl", "0")
IniWrite($iniserv, GUICtrlRead($nachname) & " " & GUICtrlRead($vorname), "anzahl", $globanzahl - 1)
$anzahl = IniRead($iniserv, "Pizza", $pizza[2], "")
If $anzahl = 1 Then
IniWrite($iniserv, "Pizza", $pizza[2], "0")
Else
$anzahl = $anzahl - 1
ConsoleWrite("zeile 80" & $anzahl)
IniWrite($iniserv, "Pizza", $pizza[2], $anzahl)
EndIf
EndFunc ;==>_delpizza
Func _deldoener()
$cheers = StringSplit($auswal_array[2], "x")
$globanzahl = IniRead($iniserv, GUICtrlRead($nachname) & " " & GUICtrlRead($vorname), "anzahl", "0")
IniWrite($iniserv, GUICtrlRead($nachname) & " " & GUICtrlRead($vorname), "anzahl", $globanzahl - $cheers[1])
[/autoit] [autoit][/autoit] [autoit]If $cheers[2] = " Döner nicht scharf" Then
$count = IniRead($iniserv, "essen", "d1ns", "0")
$count = $count - $cheers[1]
IniWrite($iniserv, "essen", "d1ns", $count)
ElseIf $cheers[2] = " Döner mittel scharf" Then
$count = IniRead($iniserv, "essen", "d1ms", "0")
$count = $count - $cheers[1]
IniWrite($iniserv, "essen", "d1ms", $count)
ElseIf $cheers[2] = " Döner sehr scharf" Then
$count = IniRead($iniserv, "essen", "d1ss", "0")
$count = $count - $cheers[1]
IniWrite($iniserv, "essen", "d1ss", $count)
ElseIf $cheers[2] = " Dürüm nicht scharf" Then
$count = IniRead($iniserv, "essen", "d2ns", "0")
$count = $count - $cheers[1]
IniWrite($iniserv, "essen", "d2ns", $count)
ElseIf $cheers[2] = " Dürüm mittel scharf" Then
$count = IniRead($iniserv, "essen", "d2ms", "0")
$count = $count - $cheers[1]
IniWrite($iniserv, "essen", "d2ms", $count)
ElseIf $cheers[2] = " Dürüm sehr scharf" Then
$count = IniRead($iniserv, "essen", "d2ss", "0")
$count = $count - $cheers[1]
IniWrite($iniserv, "essen", "d2ss", $count)
EndIf
EndFunc ;==>_deldoener
Func _all()
_GUICtrlListView_DeleteAllItems($andre)
$gesamt = IniReadSection($iniserv, "essen")
If @error Then
GUICtrlCreateListViewItem("", $andre)
Else
For $i = 1 To $gesamt[0][0]
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]GUICtrlCreateListViewItem($gesamt[$i][0] & "|" & $gesamt[$i][1], $andre)
Next
EndIf
$pgesamt = IniReadSection($iniserv, "Pizza")
If @error Then
GUICtrlCreateListViewItem("", $andre)
Else
For $i = 1 To $pgesamt[0][0]
[/autoit] [autoit][/autoit] [autoit]GUICtrlCreateListViewItem($pgesamt[$i][0] & "|" & $pgesamt[$i][1], $andre)
Next
EndIf
EndFunc ;==>_all
Die Update.exe :
Spoiler anzeigen
#include <Date.au3>
[/autoit] [autoit][/autoit] [autoit]$iniserv = "\\Serverpfad\computer.ini"
$update = "Speicherort der aktuellen Exe"
$copy = FileCopy("$update",@WorkingDir,1)
if $copy = 1 Then
IniWrite($iniserv,"Aktuell",@ComputerName,_NowDate()&" "&_NowTime()& " "& @WorkingDir)
MsgBox(0,"","Update erfolgreich"&@Crlf&"Guten Appetit!")
Exit
Else
MsgBox(0,"","Das hat nicht geklappt."&@CRLF&"Bitte erneut versuchen oder an Admin wenden!")
Exit
EndIf
Leere "Datenbank":
Spoiler anzeigen
[Bestellung]
version = 10
date = 123
[geld]
pklein = 4,50
pmittel = 5,50
pgro = 6,50
döner = 3.60
dürüm = 4.30