|
You last visited: Today at 23:47
Advertisement
Problem mit AutoIt UDF
Discussion on Problem mit AutoIt UDF within the AutoIt forum part of the Coders Den category.
10/11/2012, 19:28
|
#1
|
elite*gold: 0
Join Date: Jun 2010
Posts: 65
Received Thanks: 0
|
Problem mit AutoIt UDF
Hey Leute,
ich beschäftige mich in letzter Zeit mit Autoit, da ich einen Bot programmieren will (hab nur Erfahrung mit c++).
Ich wollte meinen Quelltext auch durchstrukturieren, indem ich UDF's verwenden wollte. Das Problem ist, wenn ich das Programm starte und die Funktion aufrufe, kommt nie die Variable raus die es sein sollte, sondern immer nur "9".
Code:
Func _Bot($CD_sk2)
MsgBox(524320, "Testprogramm", "Variable:" & @CRLF & $CD_sk2)
EndFunc
Ich weiß, dass hier noch was fehlt...
Zuvor habe ich die Variable so den User definieren lassen:
Code:
$CD_sk2 = GUICtrlCreateInput("0", 160, 50, 40)
Was hab ich falsch gemacht?
Vielen Dank für Eure Hilfe
Derrod
|
|
|
10/11/2012, 19:43
|
#2
|
elite*gold: 0
Join Date: Aug 2010
Posts: 880
Received Thanks: 113
|
Du musst, wenn du ein GUI Element untersuchen/auslesen willst, immer GuiCtrlRead($CD_sk2) machen
Also GuiCtrlRead($variable vom Input).
MfG Ludder231
|
|
|
10/11/2012, 19:58
|
#3
|
elite*gold: 0
Join Date: Jun 2010
Posts: 65
Received Thanks: 0
|
Danke! so gehts!
Sorry! auf den ersten Blick schien es, als würde es gehen, es geht aber doch nicht :/ ich hab jetzt folgendes:
Code:
$CD_sk2_I = GUICtrlCreateInput("0", 160, 50, 40)
$CD_sk2 = GuiCtrlRead($CD_sk2_I)
_Bot($CD_sk2)
Und in der Funktion noch das Gleiche:
Code:
Func _Bot($CD_sk2)
MsgBox(524320, "Testprogramm", "Variable:" & @CRLF & $CD_sk2)
EndFunc
Der Unterschied zu oben: jetzt kommt als Zahl immer das raus, was ich bei GUICtrlCreateInput als ersten Parameter genommen habe!
Nochmals Danke für die Hilfe!
|
|
|
10/11/2012, 21:02
|
#4
|
elite*gold: 0
Join Date: Jul 2010
Posts: 475
Received Thanks: 130
|
Ich denke was du suchst ist Inputbox, nicht GuiCtrlCreateInput ?
|
|
|
10/11/2012, 21:10
|
#5
|
elite*gold: 0
Join Date: Jun 2010
Posts: 65
Received Thanks: 0
|
Wo ist da der Unterschied?
|
|
|
10/11/2012, 21:33
|
#6
|
elite*gold: 0
Join Date: Apr 2012
Posts: 1,214
Received Thanks: 153
|
Quote:
Originally Posted by derrod
Danke! so gehts!
Sorry! auf den ersten Blick schien es, als würde es gehen, es geht aber doch nicht :/ ich hab jetzt folgendes:
Code:
$CD_sk2_I = GUICtrlCreateInput("0", 160, 50, 40)
$CD_sk2 = GuiCtrlRead($CD_sk2_I)
_Bot($CD_sk2)
Und in der Funktion noch das Gleiche:
Code:
Func _Bot($CD_sk2)
MsgBox(524320, "Testprogramm", "Variable:" & @CRLF & $CD_sk2)
EndFunc
Der Unterschied zu oben: jetzt kommt als Zahl immer das raus, was ich bei GUICtrlCreateInput als ersten Parameter genommen habe!
Nochmals Danke für die Hilfe! 
|
der erste paramater ist bei guictrlcreateinput der wert, der in der inputbox steht, wenn der user nichts daran geändert hat (der also von anfang an schon drinnen steht)
trägst du also keinen wert in die inputbox ein, wird dieser wert benutzt
|
|
|
10/11/2012, 21:39
|
#7
|
elite*gold: 0
Join Date: Jun 2010
Posts: 65
Received Thanks: 0
|
okay, aber wenn ich einen Eintrage, kommt trotzdem dieser Wert! Igrendetwas läuft schief! ich hab keine ahnung was :/
hier (aus dem TuT von Forsaken) funktioniert das alles auch:
Code:
#include <GUIConstantsEx.au3>
GUICreate("Forsaken's Bot", 335, 100)
GUISetState(@SW_SHOW)
GUICtrlCreateLabel("Key", 8, 10)
$key1 = GUICtrlCreateInput("", 35, 8, 120)
GUICtrlCreateLabel("Time", 8, 44)
$time1 = GUICtrlCreateInput("", 35, 40, 120)
$startbutton = GUICtrlCreateButton("Start", 190, 8, 60)
While 1
$msg = GUIGetMsg()
Select
Case $msg = $startbutton
$send1 = GUICtrlRead($key1)
$sleep1 = GUICtrlRead($time1)
While 1
Send($send1)
Sleep($sleep1)
WEnd
Case $msg = $GUI_EVENT_CLOSE
GUIDelete()
ExitLoop
EndSelect
WEnd
Asche auf mein Haupt... ich habe den Fehler entdeckt! ich habe die Variablen sofort zugewiesen, ohne dass der Nutzer die Möglichkeit hatte etwas daran zu ändern....
Wenn man den ganzen Tag an einem Quelltext sitzt übersieht man sowas... Mist!
Ich danke Euch allen sehr herzlich!
|
|
|
All times are GMT +1. The time now is 23:48.
|
|