Ich zähle mal auf, was mir spontan auffällt:
1.
Zwei der Zeilen kannst du weglassen. Du setzt dreimal hintereinander die Option GUIResizeMode auf denselben Wert, das ist unnötig.
2. Rück die If-Abfragen und den Switch vernünftig ein, sonst ist es extrem unübersichtlich.
3. Du hast mich anscheinend falsch verstanden. Die Zahlen nach While solltest du nicht einfach weglassen. "While 1" ist schon ok, auch wenn es genau genommen "While True" wäre, aber in AutoIt egal. In beiden Fällen ist es eine Endlosschleife.
Die zweite Schleife wird allerdings nicht erreicht.
4.
Was soll $Input1 hier? Das gehört da nicht hin. Was wolltest du damit erreichen?
5. Benenn die GUI-Elemente irgendwie sinnvoll. $Button1, $Button2 etc. sind wenig aussagekräftig. Damit ersparst du allen, die dein Script lesen, einige Arbeit.
6. Irgendwas ist bei deinen If-Abfragen schief gelaufen.
Das macht so keinen Sinn. Du verstehst, wieso, oder?
Ich hab das ganze mal angepasst. Alle Teile, deren Sinn mir nicht klar war (und das waren einige), habe ich einfach weggelassen.
1.
Code:
Opt("GUIResizeMode", $GUI_DOCKHCENTER+$GUI_DOCKVCENTER)
Opt("GUIResizeMode", $GUI_DOCKHCENTER+$GUI_DOCKVCENTER)
Opt("GUIResizeMode", $GUI_DOCKHCENTER+$GUI_DOCKVCENTER)
2. Rück die If-Abfragen und den Switch vernünftig ein, sonst ist es extrem unübersichtlich.
3. Du hast mich anscheinend falsch verstanden. Die Zahlen nach While solltest du nicht einfach weglassen. "While 1" ist schon ok, auch wenn es genau genommen "While True" wäre, aber in AutoIt egal. In beiden Fällen ist es eine Endlosschleife.
Die zweite Schleife wird allerdings nicht erreicht.
4.
Code:
MsgBox(0,"Fehler","Bitte gültige User-ID eingeben"& $Input1)
5. Benenn die GUI-Elemente irgendwie sinnvoll. $Button1, $Button2 etc. sind wenig aussagekräftig. Damit ersparst du allen, die dein Script lesen, einige Arbeit.
6. Irgendwas ist bei deinen If-Abfragen schief gelaufen.
Code:
If GuiCtrlRead($Input1) < 10000 Then ;// ... ElseIf GuiCtrlRead($Input1) < 10000 Then
Ich hab das ganze mal angepasst. Alle Teile, deren Sinn mir nicht klar war (und das waren einige), habe ich einfach weggelassen.
Code:
#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
Opt("GUIResizeMode", $GUI_DOCKHCENTER+$GUI_DOCKVCENTER)
$Form1 = GUICreate("User-ID", 216, 152, -1, -1, BitOR($WS_SYSMENU,$WS_POPUP))
GUISetIcon("C:\Windows\System32\shell32.dll", -78)
GUISetBkColor(0x74A402)
$Input_UserID = GUICtrlCreateInput("", 47, 55, 121, 23, BitOR($GUI_SS_DEFAULT_INPUT,$ES_NUMBER))
GUICtrlSetLimit(-1, 8)
GUICtrlSetFont(-1, 8, 400, 0, "Gill Sans Ultra Bold Condensed")
$Label1 = GUICtrlCreateLabel("Bitte trage hier deine User-ID ein:", 9, 23, 197, 23, $SS_CENTER)
GUICtrlSetFont(-1, 10, 400, 0, "Gill Sans Ultra Bold Condensed")
$Button_OK = GUICtrlCreateButton("OK", 24, 103, 75, 25)
GUICtrlSetFont(-1, 10, 400, 0, "Gill Sans Ultra Bold Condensed")
$Button_Abbrechen = GUICtrlCreateButton("Abbrechen", 112, 103, 75, 25)
GUICtrlSetFont(-1, 10, 400, 0, "Gill Sans Ultra Bold Condensed")
GUISetState(@SW_SHOW)
While True
$nMsg = GUIGetMsg()
Switch $nMsg
Case $Button_OK
If GuiCtrlRead($Input_UserID) < 10000 Then
MsgBox(0,"Fehler","Bitte gültige User-ID eingeben")
Else
;// was im Falle einer gültigen UserID (> 10000) passieren soll
EndIf
Case $Button_Abbrechen
Exit
EndSwitch
WEnd