|
You last visited: Today at 16:56
Advertisement
GUICtrlCreateCheckbox Rückgabewert?
Discussion on GUICtrlCreateCheckbox Rückgabewert? within the AutoIt forum part of the Coders Den category.
01/07/2010, 13:36
|
#1
|
elite*gold: 0
Join Date: Sep 2009
Posts: 51
Received Thanks: 8
|
GUICtrlCreateCheckbox Rückgabewert?
Hallo, ich hab mal wieder eine Frage, ist sehr leicht zu beantworten.
PHP Code:
$Fischkiller = GUICtrlCreateCheckbox ( "Fischkiller an?", 240, 200 )
Func _Fischtoeten() Switch $Fischkiller Case 0 ; Welchen Wert muss ich hier eintragen? Sleep ( 10 ) Case Else For $e = 1 To UBound ( $Fisch ) -1 $Coord2 = PixelSearch ( 877, 450, 1005, 578, $Fisch[$e], 0, 32 ) If Not @error Then MouseClick ( "right", $Coord2[0], $Coord2[1], 1, 7 ) Sleep ( 100 ) _Fischtoeten() EndIf Next EndSwitch EndFunc
Also, mein Problem ist, dass der Bot immer nach Fischen sucht, egal ob dort ein Haken ist oder nicht. Deshalb brauche ich den Wert, den ich an der Stelle einsetzte statt Case 0.
Ich hab zwar in der Autoit hilfe nachgeschaut, aber mit Control-ID kann ich wenig anfangen. Wenn jemand weis ich ich das einbauen kann.
Und kenn vieleicht jemand ein GUI AutoIt Tutorial?
|
|
|
01/07/2010, 15:52
|
#2
|
elite*gold: 0
Join Date: Mar 2009
Posts: 7,260
Received Thanks: 33,149
|
- eine Checkbox ohne GUICreate kannste schon mal vergessen
- Switch ist falsch
Versuchs mal so
PHP Code:
$nMsg = GUIGetMsg()
Switch $nMsg
Case $Fischkiller
EndSwitch
;...
- falsch aufgebaut, die Funktion soll ausgeführt werden wenn die Checkbox gecheckt ist und nicht wenn sie gedrückt wurde
Also so
PHP Code:
If BitAND($Fischkiller, $GUI_CHECKED) = $GUI_CHECKED Then
; Funktion
EndIf
Um eine GUI zu erstellen kannst du ganz einfach Koda Formdesigner benutzer, dafür braucht man kein Tutorial
|
|
|
01/07/2010, 18:12
|
#3
|
elite*gold: 0
Join Date: Sep 2009
Posts: 51
Received Thanks: 8
|
Ja ich hab des ja so mit $nMsg und so, ich will hier nur net mein ganzes skript posten. Und die GUI hab ich auch erstellt.
PHP Code:
#include <ButtonConstants.au3> #include <EditConstants.au3> #include <GUIConstantsEx.au3> #include <StaticConstants.au3> #include <WindowsConstants.au3>
#Region ### START Koda GUI section ### Form=c:\users\león\desktop\Übergeordnet\bilder\s.kxf $Form1_1 = GUICreate("AngelbotV3", 540, 370, 176, 124) GUICtrlCreateLabel("AngelbotV3 by Saladino", 200, 8, 205, 17) $Button1 = GUICtrlCreateButton ("Start", 40, 250, 205, 50) $Button2 = GUICtrlCreateButton ("Speichern", 270, 250, 205, 50) $Button3 = GUICtrlCreateButton ("Pause / Weiter", 40, 310, 205, 50) $Button4 = GUICtrlCreateButton ("Beenden", 270, 310, 205, 50)
$read1 = IniRead ("AngelbotbySaladino.ini", "Section1", "wert1_in_sectino1", "") $Server = GUICtrlCreateInput( $read1, 240, 37, 240, 20) $Server_ = GUICtrlCreateLabel ( "Servernummer:", 40, 37 ) $read2 = IniRead ("AngelbotbySaladino.ini", "Section1", "wert2_in_sectino1", "") $CH = GUICtrlCreateInput( $read2, 240, 62, 240, 20) $CH_ = GUICtrlCreateLabel ( "Channelnummer:", 40, 62 ) $read3 = IniRead ("AngelbotbySaladino.ini", "Section1", "wert3_in_sectino1", "") $ID = GUICtrlCreateInput( $read3, 240, 87, 240, 20) $ID_ = GUICtrlCreateLabel ( "ID:", 40, 87 ) $read4 = IniRead ("AngelbotbySaladino.ini", "Section1", "wert4_in_sectino1", "") $Passwort = GUICtrlCreateInput( $read4, 240, 112, 240, 20) $Passwort_ = GUICtrlCreateLabel ( "Passwort:", 40, 112 ) $read5 = IniRead ("AngelbotbySaladino.ini", "Section1", "wert5_in_sectino1", "") $Charakter = GUICtrlCreateInput( $read5, 240, 137, 240, 20) $Charakter_ = GUICtrlCreateLabel ( "Charakternummer nach rechts:", 40, 137 ) $read6 = IniRead ( "AngelbotbySaladino.ini", "Section2", "wert1_in_sectino1", "" ) $Wartezeit = GUICtrlCreateInput( $read6, 240, 162, 240, 20) $Wartezeit_ = GUICtrlCreateLabel ( "Watezeit nach Blase:", 40, 162 )
$Relogger = Guictrlcreatecheckbox ( "Relogger an?", 140, 200 ) $Fischkiller = GUICtrlCreateCheckbox ( "Fischkiller an?", 240, 200 ) $Muelwerfer = GUICtrlCreateCheckbox ( "Müllwerfer an?", 340, 200 )
GUISetState(@SW_SHOW) #EndRegion ### END Koda GUI section ###
While 1 _Main2() WEnd
Func _Main2() $nMsg = GUIGetMsg() Switch $nMsg Case $Button2 _Speichern() Case $Button3 TogglePause() Case $Button4 Terminate() Case Else _Main() EndSwitch EndFunc
Func _Main() WinActivate ( "METIN2" ) WinWaitActive ( "METIN2" ) _Angelhinein() _Fischtoeten() _Muschel() _Relogg() EndFunc
Also so is es im Grund aufgebaut, hab auchnoch andere Funktionen, aber die funktionieren ja gut.
|
|
|
01/07/2010, 19:40
|
#4
|
elite*gold: 0
Join Date: Mar 2009
Posts: 7,260
Received Thanks: 33,149
|
Du hast eigentlich nur die GUI gepostet
Wie soll man dir damit helfen?
Wenn du nicht einmal die Funktion postest bei der du Hilfe brauchst musst du es wohl selber machen
|
|
|
01/07/2010, 21:54
|
#5
|
elite*gold: 0
Join Date: Sep 2009
Posts: 51
Received Thanks: 8
|
Die Funktion ist doch im ersten Post, die musst du nut druntersetzten.
Ich hab ja gesagt, ich will net alles posten.
|
|
|
01/07/2010, 22:06
|
#6
|
elite*gold: 0
Join Date: Apr 2009
Posts: 793
Received Thanks: 366
|
Quote:
Originally Posted by KillerDeluxe123
- eine Checkbox ohne GUICreate kannste
PHP Code:
If BitAND($Fischkiller, $GUI_CHECKED) = $GUI_CHECKED Then
; Funktion
EndIf
|
Also eigentlich wurde die Antwort schon gepostet, auch wenn sie einen kleinen Fehler enthält:
PHP Code:
If BitAND(GuiCtrlRead($Fischkiller), $GUI_CHECKED) = $GUI_CHECKED Then
; Funktion
EndIf
Da ich mal stark annehme das der Threadersteller nicht weiß wofür man mal das BitAnd braucht hier mal eine kleine Erklärung der And Operation:
Um die And Operation zu verstehen muss man sich die Werte mal im Binär System angucken. Gehen wir mal davon aus das wir 2 Werte haben. Der erste steht ein Wert der verschiedene Zustände enthält(zB: Zustand1 = true, Zustand2 = false usw.). Der zweite Wert steht für genau einen dieser Zustände(zB Zustand3 = true) und nun soll überprüft werden, ob Zustand3 zutrifft.
Der Ansatzt ist ganz einfach:
00100110
00000100
Diese beiden Werte stellen die obengenannten Werte/Beispiele in dem Binärsystem da. Um nun überprüfen zu können, ob der dritte Zustand also die dritte Stelle von rechts gesetzt oder nicht gesetzt ist, benötigen wird eine And Operation. Diese setzt nur die Stellen auf 1, welche in den zu vergleichenden Werten beide auf 1 stehen also:
00100110
00000100
ergibt:
00000100
Also ist der Zustand = true. Sollte jedoch der Wert 00000000 lauten, ist der Zustand = false.
|
|
|
01/07/2010, 23:19
|
#7
|
elite*gold: 0
Join Date: Mar 2009
Posts: 7,260
Received Thanks: 33,149
|
Naja Fehler rutschen ab und zu mal rein
|
|
|
01/07/2010, 23:37
|
#8
|
elite*gold: 0
Join Date: Sep 2009
Posts: 51
Received Thanks: 8
|
Ok DICKES THX, ich hab des schon vorhin mit dem BitAND versucht, ging aber net^^
Also danke, damit is die Frage geklährt
|
|
|
01/09/2010, 08:52
|
#9
|
elite*gold: 0
Join Date: Aug 2009
Posts: 225
Received Thanks: 68
|
ich machs immer so
PHP Code:
If (GUICTRLread($fischkiller)) = $GUI_CHECKED Then
Funcktion
Endif
|
|
|
01/09/2010, 12:07
|
#10
|
elite*gold: 0
Join Date: Apr 2009
Posts: 793
Received Thanks: 366
|
Quote:
Originally Posted by 93lucas
ich machs immer so
PHP Code:
If (GUICTRLread($fischkiller)) = $GUI_CHECKED Then
Funcktion
Endif
|
Das Problem daran ist, wenn du folgendes machts, dürfte es nic ht funktionieren:
Code:
GUICtrlSetState($fischkiller, $GUI_DISABLE+$GUI_CHECKED)
If (GUICTRLread($fischkiller)) = $GUI_CHECKED Then
;Funcktion
Endif
|
|
|
All times are GMT +1. The time now is 16:58.
|
|