Register for your free account! | Forgot your password?

Go Back   elitepvpers > Coders Den > AutoIt
You last visited: Today at 05:25

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



Problem mit @error Befehl

Discussion on Problem mit @error Befehl within the AutoIt forum part of the Coders Den category.

Reply
 
Old   #1
 
elite*gold: 0
Join Date: Oct 2012
Posts: 52
Received Thanks: 11
Problem mit @error Befehl

Hi ich habe mich an ein Mini-Projekt gesetzt (für mich halt nicht so mini, weil ich gerade mit AutoIt beginne) und wollte mir ein kleines Spiel programmieren. Es wird eine Zufallszahl generiert und man muss anhand der Hinweise größer bzw. kleiner die zufällige Zahl zwischen 1 und 100 rausfinden. Das funktiert auch soweit ganz gut. Das Problem ist nur, wenn ich auf Cancel drücke soll er das Programm beenden. Stattdessen nimmt er den Wert, der in der inputbox steht (also null) und meint meine Zahl sei zu klein. Jetzt wollte ich mal fragen, wie man dem Pc verklickern kann, was er tun soll, wenn auf Cancel gedrückt wird.
Ich pack hier mal meinen Code mit rein, da er erstens ja nicht groß ist und zweitens kann man daran ja erkennen, wie ich das nach einigen Anweisungen im Netz verstanden habe.
PHP Code:
$Z random(0,100,1)
for 
$i 1 to 10 step +1
$Tipp 
InputBox('Zahlenraten','Errate die geheime Zahl.')
if 
$Tipp $Z Then
    MsgBox
(64,'Glückwunsch!','Glückwunsch Du hast die gesuchte Zahl gefunden!')
    
ProcessClose('Zahlenraten.exe')
ElseIf 
$Tipp $Z Then
    MsgBox
(0,'Zu klein','Dein Tipp war zu klein. Probiere bitte eine größere Zahl. Es verbleiben '10 $i &' Versuche',3)
ElseIf     
$Tipp $Z Then
    MsgBox
(0,'Zu groß','Dein Tipp war zu groß. Probiere bitte eine kleinere Zahl. Es verbleiben '10 $i &' Versuche',3)
ElseIf @
error 1 Then
    ProcessClose
('Zahlenraten.exe')
Else
EndIf
Next
ProcessClose
('Zahlenraten.exe'
Würde mich über hilfreiche Antworten freuen
Klugscheißer is offline  
Old 10/19/2012, 11:22   #2
 
elite*gold: 0
Join Date: Dec 2008
Posts: 371
Received Thanks: 115
downloade dir scite4autoit und drück dann bei scite alt+m dann öffnet sich der koda formdesigner. mit dem kannst du dann eine msgbox machen wo die knöpfe als variable gespeichert sind und somit gut schließbar sind. wenn das geholfen hat einfach da unten den thx knopf geben.
isaias is offline  
Thanks
1 User
Old 10/19/2012, 17:37   #3
 
elite*gold: 0
Join Date: Oct 2012
Posts: 52
Received Thanks: 11
Hast erstmal ein Thx. Trotzdem würde ich ungern mit Koda Designer arbeiten, da es mir einfach erstmal darum geht, wie man dieses Problem mit @error lösen kann bzw ob das überhaupt möglich ist. Wie gesagt trotzdem danke
Klugscheißer is offline  
Old 10/19/2012, 17:38   #4

 
BladeTiger12's Avatar
 
elite*gold: 64
Join Date: May 2011
Posts: 1,228
Received Thanks: 847
Kann dir gerne helfen Skype Name:
MrBladeTiger12
BladeTiger12 is offline  
Thanks
1 User
Old 10/24/2012, 10:49   #5
 
elite*gold: 0
Join Date: Dec 2008
Posts: 371
Received Thanks: 115
Quote:
Originally Posted by Klugscheißer View Post
Hast erstmal ein Thx. Trotzdem würde ich ungern mit Koda Designer arbeiten, da es mir einfach erstmal darum geht, wie man dieses Problem mit @error lösen kann bzw ob das überhaupt möglich ist. Wie gesagt trotzdem danke
koda form designer erledigt alles mit den variablen. das bedeutet: kein fehler! jetzt downloade dir das und dann sind wir alle glücklich!
isaias is offline  
Old 10/24/2012, 18:01   #6
 
Achat's Avatar
 
elite*gold: 528
Join Date: Jan 2012
Posts: 2,127
Received Thanks: 2,404
Quote:
Originally Posted by Klugscheißer View Post
Es wird eine Zufallszahl generiert und man muss anhand der Hinweise größer bzw. kleiner die zufällige Zahl zwischen 1 und 100 rausfinden. Das funktiert auch soweit ganz gut. Das Problem ist nur, wenn ich auf Cancel drücke soll er das Programm beenden. Stattdessen nimmt er den Wert, der in der inputbox steht (also null) und meint meine Zahl sei zu klein. J
Quote:
Originally Posted by isaias View Post
koda form designer erledigt alles mit den variablen. das bedeutet: kein fehler! jetzt downloade dir das und dann sind wir alle glücklich!

Du empfiehlst also einem Anfänger, gleich am Anfang mal einen Code von KODA generieren zu lassen, den er dann sowieso nicht versteht?

Quote:
Originally Posted by Klugscheißer View Post
Trotzdem würde ich ungern mit Koda Designer arbeiten, da es mir einfach erstmal darum geht, wie man dieses Problem mit @error lösen kann bzw ob das überhaupt möglich ist.
(Cursor über Befehl, Linksklick und dann F1 drücken) und Tutorials lesen:
Kann ich nur empfehlen, das mal durchzulesen.

Code:
Success: Returns the string that was entered. 
Failure: Returns "" (blank string) and sets @error as follows: 
@Error 0 = The string returned is valid. 
 1 = The Cancel button was pushed. 
 2 = The Timeout time was reached. 
 3 = The InputBox failed to open. This is usually caused by bad arguments. 
 4 = The InputBox cannot be displayed on any monitor. 
 5 = Invalid parameters width without height or left without top.
Bedeutet also wir bekommen einen String, wenn der Benutzer etwas eingibt. Wenn er die InputBox wegklickt etc. Dann wird in @error eine Zahl größer 0 gespeichert. Wie findet man nun heraus, ob es Probleme gab?

Ganz einfach
Code:
If @error then exit
Unter die InputBox. @Error enthält immer den error Wert, die die zuletzt aufgerufene Funktion dort gespeichert hat.

Quote:
If <expression> Then statement
Wenn der Ausdruck wahr ist, dann wird der Befehl ausgeführt. Also wenn @error 0 ist, dann ist expression false - wird nicht ausgeführt. Wenn InputBo aber ein @error größer 0 setzt, dann ist der Ausdruck wahr und somit wird dann der Befehl ausgeführt, in diesem Fall beendet sich das Programm.

Dazu noch das :

Code:
$iRandom = Random(0, 100, 1)

For $i = 1 To 10
	$iTipp = InputBox('Zahlenraten', 'Errate die geheime Zahl.')
	If @error Then Exit
	$iTipp = Int($iTipp) ;Wir wollen Zahlen vergleichen, InputBox gibt aber immmer einen String zurück. Also wandeln wir den String in eine Zahl um mit Int(), falls der String leer ist bekommen wir 0
	If $iTipp = $iRandom Then
		MsgBox(64, 'Glückwunsch!', 'Glückwunsch Du hast die gesuchte Zahl gefunden!')
		ExitLoop ; Raus aus der For-Schelife, wir brauchen ja keine neuen Versuche mehr, da die Zahl gefunden wurde
	ElseIf $iTipp < $iRandom Then
		MsgBox(0, 'Zu klein', 'Dein Tipp war zu klein. Probiere bitte eine größere Zahl. Es verbleiben ' & 10 - $i & ' Versuche', 3)
	ElseIf $iTipp > $iRandom Then
		MsgBox(0, 'Zu groß', 'Dein Tipp war zu groß. Probiere bitte eine kleinere Zahl. Es verbleiben ' & 10 - $i & ' Versuche', 3)
	EndIf
Next
;Process Close oder Exit ist hier nicht nötig, das Script schließt sich am Ende automatisch, falls es nicht mehr in einer Schleife o.ä. ist.
PS: Ich helfe auch gerne über skype.

MfG
Achat is offline  
Thanks
1 User
Reply


Similar Threads Similar Threads
[VB.Net][Problem] Post-Befehl
04/23/2011 - .NET Languages - 0 Replies
Also mein Problem liegt darinn ich will einen Bot Coden Login u.s.w. klappt auch alles Prima. Aber ich hab da jetzt ein Problem. Für die einzelnden Funktionen in dem Browsergame werden besondere Post Packets benutzt. Hier mal das Kampf Packet: <methodCall> <methodName>Fight</methodName> <params> <param>
Problem mit dem run befehl
03/13/2011 - AutoIt - 2 Replies
Ich wollte mal wissen ob mir wer sagen kann warum er die datei nicht findet/ausführt... While 1 $nMsg = GUIGetMsg() Switch $nMsg Case $GUI_EVENT_CLOSE Exit case $Button1
Flyff GM Befehl problem
12/19/2010 - Flyff Private Server - 7 Replies
Hallo elitepvpers, mein Server läuft jetzt!:) Aber da gibt es ein Problem mit den GM Befehlen. Ich kann zwar lvl, job und alles aber ich kann keine items einfügen. Ich glaube mir fehlt der Befehl /createitem! Kann mir da einer helfen?? thx schonmal
GM BEFEHL Problem!
07/14/2010 - Flyff Private Server - 7 Replies
Hallo Leute, wie der Titel schon sagt habe ich ein Problem^^ Und zwar, wenn ich das item Acer Boots(M) haben will (.item 22445) dann passiert nichs. Aber wenn ich den Befehl gebe das ich einen anderen Job haben will, z.B. Blade Hero (.job 25), dann nimmt er es an ^-^ Kann mir da vllt einer Helfen?? MFG ChickenWings13
Quest Befehl problem
03/13/2010 - Metin2 Private Server - 0 Replies
Hiho, weiß jemand wie man die befehle pc.give_item2() item.set_socket() kombiniert? Beim Abschließen der Quest soll der Spieler ein Item, ich nehm jetzt einfach mal vnum 189 als Beispiel, erhalten und Sockel 0 soll mit dem Stein vnum 28637 schon gefüllt sein. hab schon paar sachen versucht z.b.



All times are GMT +2. The time now is 05:25.


Powered by vBulletin®
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2024 elitepvpers All Rights Reserved.