GUI -> labels,checkbox y Buttons

Pregunta Sin Miedo no te cortes cualquier cosa para empezar - Autoit se comienza facilmente.Para Ordenes o Comandos sueltos. Ver nota como preguntar.
Responder
ziknos
Aprendiz de Mago
Mensajes: 50
Registrado: 02 Mar 2009, 17:36

GUI -> labels,checkbox y Buttons

Mensaje por ziknos »

Hola pues os comento, estoy haciendo una GUI para un bot como ya comento en el otro post pero no se como hacer funcionar los botones, labels y checkboxes. os pongo aqui el codigo y bajo os comento lo que quiero hacer:

Código: Seleccionar todo

#include <GuiConstantsEx.au3>
#include <IE.au3>
#include <WindowsConstants.au3>

$oIE = _IECreateEmbedded ()

GUICreate("Ziknos", 800, 740, _
        (@DesktopWidth - 0), (@DesktopHeight - 1024), _
        $WS_OVERLAPPEDWINDOW + $WS_VISIBLE + $WS_CLIPSIBLINGS + $WS_CLIPCHILDREN)

$GuiactiveX = Guictrlcreateobj ($oIE, 80, 10, 640, 514)

GuiCtrlCreateLabel("Username", 10, 602)
$User1 = Guictrlcreateinput("", 70, 600, 120) 

GuiCtrlCreateLabel("Password", 10, 636)
$Pass1 = GuiCtrlCreateinput("", 70, 635, 120)

GuiCtrlCreateLabel("Pass2", 10, 670)
$Gpass1 = GuiCtrlCreateinput("", 70, 670, 120)

GuiCtrlCreateLabel("Char Selection", 215, 636)

GuiCtrlCreateLabel("Slot1",300,615)
$Char1 = GuiCtrlCreateCheckbox("", 330, 618)

GuiCtrlCreateLabel("Slot2",350,615)
$Char2 = GuiCtrlCreateCheckbox("", 380, 618)

GuiCtrlCreateLabel("Slot3",300,655)
$Char3 = GuiCtrlCreateCheckbox("", 330, 658)

GuiCtrlCreateLabel("Slot4",350,655)
$Char4 = GuiCtrlCreateCheckbox("", 380, 658)

$Startbutton = GuiCtrlCreateButton("Start", 450, 617, 60)

$Stopbutton = GuiCtrlCreateButton("Stop", 450, 651, 60)

GuisetState(@SW_SHOW)

_IENavigate ($oIE, "www.google.es")

while 1 
	
	Sleep (1)    ;esto lo he puesto para que no se cierre de momento.
	WEnd 
Bueno pues lo que necesito hacer son varias cosas a ver como se podria hacer.. :

- Necesito poner el Usuario, las contraseñas y elegir personaje y cuando le de al Button start que segun el nombre o contraseña que yo ponga el mismo la escriba en sus casillas correspondientes(que lo haria con clicks y send)

- tambien me gustaria saber como en las Labels de password que salgan * * * * * en vez de la contraseña.

-y que solo pueda seleccionar 1 checkbox, cuando ponga uno que el otro se desactive

- y por ultimo una "tonteria" que es porque me salen los Checkbox sin la parte de arriba? osea cuando ejecuto el script sale la parte de arriba del cuadradito cortado.

muchisimas gracais!
MaTaXeToS
Mensajes: 22
Registrado: 02 Dic 2009, 09:36

Re: GUI -> labels,checkbox y Buttons

Mensaje por MaTaXeToS »

Hombre, yo no se mucho, solo te puedo ayudar con el tema de la password (lo que salga ***)

en el input de la password utiliza:

Código: Seleccionar todo

GUICtrlCreateInput("", 104, 56, 121, 21, BitOR($ES_PASSWORD,$ES_AUTOHSCROLL))
de esa manera, saldra *** lo que escribas.
ziknos
Aprendiz de Mago
Mensajes: 50
Registrado: 02 Mar 2009, 17:36

Re: GUI -> labels,checkbox y Buttons

Mensaje por ziknos »

MaTaXeToS escribió:Hombre, yo no se mucho, solo te puedo ayudar con el tema de la password (lo que salga ***)

en el input de la password utiliza:

Código: Seleccionar todo

GUICtrlCreateInput("", 104, 56, 121, 21, BitOR($ES_PASSWORD,$ES_AUTOHSCROLL))
de esa manera, saldra *** lo que escribas.
Hola, muchas gracias pero pongo eso mismo y me sale error..

$Pass1 = GuiCtrlCreateinput("", 70, 635, 120, BitOR($ES_PASSWORD,$ES_AUTOHSCROLL))
$Pass1 = GuiCtrlCreateinput("", 70, 635, 120, BitOR(^ ERROR

porque puede ser?

gracias de nuevo :)
Avatar de Usuario
BasicOs
Site Admin
Mensajes: 2091
Registrado: 21 Nov 2006, 19:24
Ubicación: El Internet - (Canarias, España)
Contactar:

Re: GUI -> labels,checkbox y Buttons

Mensaje por BasicOs »

Te falta un parámetro en las coordenadas, deben ser 4:
GUICtrlCreateInput ( "text", left, top [, width [, height [, style)
Un ejemplo de la ayuda del fichero chm:

Código: Seleccionar todo

#AutoIt3Wrapper_au3check_parameters=-d -w 1 -w 2 -w 3 -w 4 -w 5 -w 6
#include <GuiEdit.au3>
#include <GuiConstantsEx.au3>

Opt('MustDeclareVars', 1)

$Debug_Ed = False ; Check ClassName being passed to Edit functions, set to True and use a handle to another control to see it work

_Main()

Func _Main()
    Local $hEdit

    ; Create GUI
    GUICreate("Edit Get Password Char", 400, 300)
    $hEdit = GUICtrlCreateInput("Test of build-in control", 2, 2, 394, 25, $ES_PASSWORD)
    GUISetState()

    MsgBox(4096, "Information", "Password Char: " & _GUICtrlEdit_GetPasswordChar($hEdit))

    _GUICtrlEdit_SetPasswordChar($hEdit, "$") ; change password char to $
    
    MsgBox(4096, "Information", "Password Char: " & _GUICtrlEdit_GetPasswordChar($hEdit))

    _GUICtrlEdit_SetPasswordChar($hEdit) ; display characters typed by the user.

    MsgBox(4096, "Information", "Password Char: " & _GUICtrlEdit_GetPasswordChar($hEdit))

    ; Loop until user exits
    Do
    Until GUIGetMsg() = $GUI_EVENT_CLOSE
    GUIDelete()
EndFunc   ;==>_Main
y

Código: Seleccionar todo

#AutoIt3Wrapper_Au3Check_Parameters= -d -w 1 -w 2 -w 3 -w 4 -w 5 -w 6
#include <GuiRichEdit.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>

Main()

Func Main()
    Local $hGui, $hRichEdit, $iMsg
    $hGui = GUICreate("Example (" & StringTrimRight(@ScriptName,4) &")", 320, 350, -1, -1)
    $hRichEdit = _GUICtrlRichEdit_Create($hGui, "This is a test.", 10, 10, 300, 220, _
            BitOR($ES_MULTILINE, $WS_VSCROLL, $ES_AUTOVSCROLL))
    _GUICtrlRichEdit_AppendText($hRichEdit, @CR & "This is more text")
    GUISetState()

    While True
        $iMsg = GUIGetMsg()
        Select
            Case $iMsg = $GUI_EVENT_CLOSE
                GUIDelete()
                Exit
        EndSelect
    WEnd
EndFunc   ;==>Main
Salu22:)
Avatar de Usuario
Fredinchy
Aprendiz de Mago
Mensajes: 32
Registrado: 30 Mar 2010, 01:27
Ubicación: Unknown

Re: GUI -> labels,checkbox y Buttons

Mensaje por Fredinchy »

Bueno esta un poquito modificado el mio :smt005

Código: Seleccionar todo

#include <GuiConstantsEx.au3>
#include <IE.au3>
#include <WindowsConstants.au3>
#include <EditConstants.au3>

$oIE = _IECreateEmbedded ()

GUICreate("Ziknos", 800, 730, Default,Default, $WS_OVERLAPPEDWINDOW + $WS_VISIBLE + $WS_CLIPSIBLINGS + $WS_CLIPCHILDREN)

$GuiactiveX = Guictrlcreateobj ($oIE, 80, 10, 640, 514)

GuiCtrlCreateLabel("Username", 10, 602)
$User1 = Guictrlcreateinput("", 70, 600, 120)

GuiCtrlCreateLabel("Password", 10, 636)
$Pass1 = GuiCtrlCreateinput("", 70, 635, 120,Default,$ES_PASSWORD) ;$ES_PASSWORD es un estilo para que salgan los **** (se necesita #include <EditConstants.au3>)

GuiCtrlCreateLabel("Pass2", 10, 670)
$Gpass1 = GuiCtrlCreateinput("", 70, 670, 120,Default,$ES_PASSWORD) ;otra vez $ES_PASSWORD

GuiCtrlCreateLabel("Char Selection", 215, 636)

$Char1 = GUICtrlCreateRadio("Slot1", 300, 611)

$Char2 = GUICtrlCreateRadio("Slot2", 350, 612)

$Char3 = GUICtrlCreateRadio("Slot3", 300, 655)

$Char4 = GUICtrlCreateRadio("Slot4", 350, 655)

$Startbutton = GuiCtrlCreateButton("Start", 450, 617, 60)

$Stopbutton = GuiCtrlCreateButton("Stop", 450, 651, 60)

GuisetState(@SW_SHOW)

_IENavigate ($oIE, "www.google.es")

while 1
	$msg=GUIGetMsg() ;Captura las acciones en la GUI
	Switch $msg
		Case $GUI_EVENT_CLOSE ;si pulsan el boton cerrar de la GUI se cierra
			Exit
		Case $Startbutton ;si pulsan Start ocurre msgbox
			If GUICtrlRead($Char1)=$GUI_CHECKED Then $radio="Slot1" ;si char1 esta seleccionado $radio = Slot1 (para mostrarlo despues en el Msgbox
			If GUICtrlRead($Char2)=$GUI_CHECKED Then $radio="Slot2" ;si char2 esta seleccionado $radio = Slot2
			If GUICtrlRead($Char3)=$GUI_CHECKED Then $radio="Slot3" ;si char3 esta seleccionado $radio = Slot3
			If GUICtrlRead($Char4)=$GUI_CHECKED Then $radio="Slot4" ;si char4 esta seleccionado $radio = Slot4
			MsgBox(0,"Resultado","Username: "&GUICtrlRead($User1)&@LF&"Password: "&GUICtrlRead($Pass1) _
			&@LF&"Pass2: "&GUICtrlRead($Gpass1)&@LF&"Char Selection: "&$radio) ;leo los input, y el radio y los muestro con un Msgbox
	EndSwitch
   Sleep(50) ;sleep que NO es necesario. Lo utilizo para que el programa consuma menos recursos de la computadora
   WEnd
Cuando pulsas Start muestra todo lo que pusiste en la GUI, así tienes un ejemplo de cómo se leen los controles y coloqué en el while el guigetmsg() para que veas como funciona. :smt026

Las checkboxes cortadas ni idea, pero igual los cambié por un "radio". Cualquier duda nos dices! :smt016

Saludos! :smt020
Cause no one here can ever stop us! They can try but we won't let them! No way.. :smt020
ziknos
Aprendiz de Mago
Mensajes: 50
Registrado: 02 Mar 2009, 17:36

Re: GUI -> labels,checkbox y Buttons

Mensaje por ziknos »

BasicOs escribió:Te falta un parámetro en las coordenadas, deben ser 4:
GUICtrlCreateInput ( "text", left, top [, width [, height [, style)
Un ejemplo de la ayuda del fichero chm:

Código: Seleccionar todo

#AutoIt3Wrapper_au3check_parameters=-d -w 1 -w 2 -w 3 -w 4 -w 5 -w 6
#include <GuiEdit.au3>
#include <GuiConstantsEx.au3>

Opt('MustDeclareVars', 1)

$Debug_Ed = False ; Check ClassName being passed to Edit functions, set to True and use a handle to another control to see it work

_Main()

Func _Main()
    Local $hEdit

    ; Create GUI
    GUICreate("Edit Get Password Char", 400, 300)
    $hEdit = GUICtrlCreateInput("Test of build-in control", 2, 2, 394, 25, $ES_PASSWORD)
    GUISetState()

    MsgBox(4096, "Information", "Password Char: " & _GUICtrlEdit_GetPasswordChar($hEdit))

    _GUICtrlEdit_SetPasswordChar($hEdit, "$") ; change password char to $
    
    MsgBox(4096, "Information", "Password Char: " & _GUICtrlEdit_GetPasswordChar($hEdit))

    _GUICtrlEdit_SetPasswordChar($hEdit) ; display characters typed by the user.

    MsgBox(4096, "Information", "Password Char: " & _GUICtrlEdit_GetPasswordChar($hEdit))

    ; Loop until user exits
    Do
    Until GUIGetMsg() = $GUI_EVENT_CLOSE
    GUIDelete()
EndFunc   ;==>_Main
y

Código: Seleccionar todo

#AutoIt3Wrapper_Au3Check_Parameters= -d -w 1 -w 2 -w 3 -w 4 -w 5 -w 6
#include <GuiRichEdit.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>

Main()

Func Main()
    Local $hGui, $hRichEdit, $iMsg
    $hGui = GUICreate("Example (" & StringTrimRight(@ScriptName,4) &")", 320, 350, -1, -1)
    $hRichEdit = _GUICtrlRichEdit_Create($hGui, "This is a test.", 10, 10, 300, 220, _
            BitOR($ES_MULTILINE, $WS_VSCROLL, $ES_AUTOVSCROLL))
    _GUICtrlRichEdit_AppendText($hRichEdit, @CR & "This is more text")
    GUISetState()

    While True
        $iMsg = GUIGetMsg()
        Select
            Case $iMsg = $GUI_EVENT_CLOSE
                GUIDelete()
                Exit
        EndSelect
    WEnd
EndFunc   ;==>Main
Salu22:)
Hola, Basicos, gracias pero aun asi guardando el primer codigo que me as puesto le doy a ejecutarlo y me sigue dando el mismo error, no se que puede ser:

Código: Seleccionar todo

$hEdit = GUICtrlCreateInput("Test of build-in control", 2, 2, 394, 25, $ES_PASSWORD)
$hEdit = GUICtrlCreateInput("Test of build-in control", 2, 2, 394, 25, ^ ERROR
Avatar de Usuario
Fredinchy
Aprendiz de Mago
Mensajes: 32
Registrado: 30 Mar 2010, 01:27
Ubicación: Unknown

Re: GUI -> labels,checkbox y Buttons

Mensaje por Fredinchy »

ziknos escribió:
BasicOs escribió:Te falta un parámetro en las coordenadas, deben ser 4:
GUICtrlCreateInput ( "text", left, top [, width [, height [, style)
Un ejemplo de la ayuda del fichero chm:

Código: Seleccionar todo

#AutoIt3Wrapper_au3check_parameters=-d -w 1 -w 2 -w 3 -w 4 -w 5 -w 6
#include <GuiEdit.au3>
#include <GuiConstantsEx.au3>

Opt('MustDeclareVars', 1)

$Debug_Ed = False ; Check ClassName being passed to Edit functions, set to True and use a handle to another control to see it work

_Main()

Func _Main()
    Local $hEdit

    ; Create GUI
    GUICreate("Edit Get Password Char", 400, 300)
    $hEdit = GUICtrlCreateInput("Test of build-in control", 2, 2, 394, 25, $ES_PASSWORD)
    GUISetState()

    MsgBox(4096, "Information", "Password Char: " & _GUICtrlEdit_GetPasswordChar($hEdit))

    _GUICtrlEdit_SetPasswordChar($hEdit, "$") ; change password char to $
    
    MsgBox(4096, "Information", "Password Char: " & _GUICtrlEdit_GetPasswordChar($hEdit))

    _GUICtrlEdit_SetPasswordChar($hEdit) ; display characters typed by the user.

    MsgBox(4096, "Information", "Password Char: " & _GUICtrlEdit_GetPasswordChar($hEdit))

    ; Loop until user exits
    Do
    Until GUIGetMsg() = $GUI_EVENT_CLOSE
    GUIDelete()
EndFunc   ;==>_Main
y

Código: Seleccionar todo

#AutoIt3Wrapper_Au3Check_Parameters= -d -w 1 -w 2 -w 3 -w 4 -w 5 -w 6
#include <GuiRichEdit.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>

Main()

Func Main()
    Local $hGui, $hRichEdit, $iMsg
    $hGui = GUICreate("Example (" & StringTrimRight(@ScriptName,4) &")", 320, 350, -1, -1)
    $hRichEdit = _GUICtrlRichEdit_Create($hGui, "This is a test.", 10, 10, 300, 220, _
            BitOR($ES_MULTILINE, $WS_VSCROLL, $ES_AUTOVSCROLL))
    _GUICtrlRichEdit_AppendText($hRichEdit, @CR & "This is more text")
    GUISetState()

    While True
        $iMsg = GUIGetMsg()
        Select
            Case $iMsg = $GUI_EVENT_CLOSE
                GUIDelete()
                Exit
        EndSelect
    WEnd
EndFunc   ;==>Main
Salu22:)
Hola, Basicos, gracias pero aun asi guardando el primer codigo que me as puesto le doy a ejecutarlo y me sigue dando el mismo error, no se que puede ser:

Código: Seleccionar todo

$hEdit = GUICtrlCreateInput("Test of build-in control", 2, 2, 394, 25, $ES_PASSWORD)
$hEdit = GUICtrlCreateInput("Test of build-in control", 2, 2, 394, 25, ^ ERROR
Ignoraron mi código :smt022 :smt022

Les falta incluir la librería EditConstants.au3 :smt005

Saludos! :smt020
Cause no one here can ever stop us! They can try but we won't let them! No way.. :smt020
ziknos
Aprendiz de Mago
Mensajes: 50
Registrado: 02 Mar 2009, 17:36

Re: GUI -> labels,checkbox y Buttons

Mensaje por ziknos »

Fredinchy escribió:Bueno esta un poquito modificado el mio :smt005

Código: Seleccionar todo

#include <GuiConstantsEx.au3>
#include <IE.au3>
#include <WindowsConstants.au3>
#include <EditConstants.au3>

$oIE = _IECreateEmbedded ()

GUICreate("Ziknos", 800, 730, Default,Default, $WS_OVERLAPPEDWINDOW + $WS_VISIBLE + $WS_CLIPSIBLINGS + $WS_CLIPCHILDREN)

$GuiactiveX = Guictrlcreateobj ($oIE, 80, 10, 640, 514)

GuiCtrlCreateLabel("Username", 10, 602)
$User1 = Guictrlcreateinput("", 70, 600, 120)

GuiCtrlCreateLabel("Password", 10, 636)
$Pass1 = GuiCtrlCreateinput("", 70, 635, 120,Default,$ES_PASSWORD) ;$ES_PASSWORD es un estilo para que salgan los **** (se necesita #include <EditConstants.au3>)

GuiCtrlCreateLabel("Pass2", 10, 670)
$Gpass1 = GuiCtrlCreateinput("", 70, 670, 120,Default,$ES_PASSWORD) ;otra vez $ES_PASSWORD

GuiCtrlCreateLabel("Char Selection", 215, 636)

$Char1 = GUICtrlCreateRadio("Slot1", 300, 611)

$Char2 = GUICtrlCreateRadio("Slot2", 350, 612)

$Char3 = GUICtrlCreateRadio("Slot3", 300, 655)

$Char4 = GUICtrlCreateRadio("Slot4", 350, 655)

$Startbutton = GuiCtrlCreateButton("Start", 450, 617, 60)

$Stopbutton = GuiCtrlCreateButton("Stop", 450, 651, 60)

GuisetState(@SW_SHOW)

_IENavigate ($oIE, "www.google.es")

while 1
	$msg=GUIGetMsg() ;Captura las acciones en la GUI
	Switch $msg
		Case $GUI_EVENT_CLOSE ;si pulsan el boton cerrar de la GUI se cierra
			Exit
		Case $Startbutton ;si pulsan Start ocurre msgbox
			If GUICtrlRead($Char1)=$GUI_CHECKED Then $radio="Slot1" ;si char1 esta seleccionado $radio = Slot1 (para mostrarlo despues en el Msgbox
			If GUICtrlRead($Char2)=$GUI_CHECKED Then $radio="Slot2" ;si char2 esta seleccionado $radio = Slot2
			If GUICtrlRead($Char3)=$GUI_CHECKED Then $radio="Slot3" ;si char3 esta seleccionado $radio = Slot3
			If GUICtrlRead($Char4)=$GUI_CHECKED Then $radio="Slot4" ;si char4 esta seleccionado $radio = Slot4
			MsgBox(0,"Resultado","Username: "&GUICtrlRead($User1)&@LF&"Password: "&GUICtrlRead($Pass1) _
			&@LF&"Pass2: "&GUICtrlRead($Gpass1)&@LF&"Char Selection: "&$radio) ;leo los input, y el radio y los muestro con un Msgbox
	EndSwitch
   Sleep(50) ;sleep que NO es necesario. Lo utilizo para que el programa consuma menos recursos de la computadora
   WEnd
Cuando pulsas Start muestra todo lo que pusiste en la GUI, así tienes un ejemplo de cómo se leen los controles y coloqué en el while el guigetmsg() para que veas como funciona. :smt026

Las checkboxes cortadas ni idea, pero igual los cambié por un "radio". Cualquier duda nos dices! :smt016

Saludos! :smt020
wow, muchas gracias! Fredinchy, estoy mirandome todo el codigo para entender porque hace cada cosa.

Ahora solo me falta conseguir que en vez de que me muestre un msgbox me haga mouseclicks y Sends segun lo que yo tenga puesto en el usuario y contraseña y elija "personaje" por cordenadas segun el slot que elija, osea tengo que asignar a cada "Radio" unas cordenadas para hacer clicks.

saludos y muchas gracias de nuevo

Edit: Fredinchy no ignore tu codigo!!! solo que mientras escribia el ultimo mensaje mio lo posteaste tu y no lo vi:):)
ziknos
Aprendiz de Mago
Mensajes: 50
Registrado: 02 Mar 2009, 17:36

Re: GUI -> labels,checkbox y Buttons

Mensaje por ziknos »

Hola de nuevo, pues hay algo que sigue sin funcionarme, de momento he conseguido que me ponga el usuario y contraseñas que yo ponga en el label, pero no consigo que me elija el personaje que yo quiera.. :S

he cambiado esto de el codigo de Fredinchy

Código: Seleccionar todo

while 1
   $msg=GUIGetMsg() ;Captura las acciones en la GUI
   Switch $msg
      Case $GUI_EVENT_CLOSE ;si pulsan el boton cerrar de la GUI se cierra
         Exit
      Case $Startbutton ;si pulsan Start ocurre msgbox
         If GUICtrlRead($Char1)=$GUI_CHECKED Then $radio="Slot1" ;si char1 esta seleccionado $radio = Slot1 (para mostrarlo despues en el Msgbox
         If GUICtrlRead($Char2)=$GUI_CHECKED Then $radio="Slot2" ;si char2 esta seleccionado $radio = Slot2
         If GUICtrlRead($Char3)=$GUI_CHECKED Then $radio="Slot3" ;si char3 esta seleccionado $radio = Slot3
         If GUICtrlRead($Char4)=$GUI_CHECKED Then $radio="Slot4" ;si char4 esta seleccionado $radio = Slot4
         MsgBox(0,"Resultado","Username: "&GUICtrlRead($User1)&@LF&"Password: "&GUICtrlRead($Pass1) _
         &@LF&"Pass2: "&GUICtrlRead($Gpass1)&@LF&"Char Selection: "&$radio) ;leo los input, y el radio y los muestro con un Msgbox
por este codigo mio :

Código: Seleccionar todo

while 1
   $msg=GUIGetMsg() ;Captura las acciones en la GUI
   Switch $msg
      Case $GUI_EVENT_CLOSE ;si pulsan el boton cerrar de la GUI se cierra
         Exit
      Case $Startbutton ;si pulsan Start ocurre msgbox
           If GUICtrlRead($Char1)=$GUI_CHECKED Then $radio="slot1"
			   Sleep(1000)
			   Mouseclick("left", 1700, 285, 2, 90)
			     Sleep(500)
			   Send (""&GUICtrlRead($User1))
			     Sleep(500)
			   MouseClick ("left", 1700, 310, 2, 90) 
			     Sleep(500)
			   Send (""&GUICtrlRead($Pass1))
			     Sleep(500)
			   MouseClick ("left", 1700, 335, 2, 90)
			     Sleep(500)
			   Send (""&GUICtrlRead($Gpass1))
			     Sleep(1000)
			   Mouseclick ("left", 1700, 360, 1, 90)
			     Sleep(10000)
			   Mouseclick ("left", 1450, 90, 2, 90) ;Elije personaje 1 
			   sleep(10000)
			   
			   If GUICtrlRead($Char2)=$GUI_CHECKED Then $radio="slot2"
				   Sleep(1000)
				   Mouseclick("left", 1700, 285, 2, 90)
				     Sleep(500)
			   Send (""&GUICtrlRead($User1))
			     Sleep(500)
			   MouseClick ("left", 1700, 310, 2, 90) 
			     Sleep(500)
			   Send (""&GUICtrlRead($Pass1))
			     Sleep(500)
			   MouseClick ("left", 1700, 335, 2, 90)
			     Sleep(500)
			   Send (""&GUICtrlRead($Gpass1))
			     Sleep(500)
			   Mouseclick ("left", 1700, 360, 1, 90)
			     Sleep(500)
			   Mouseclick ("left", 1650, 90, 2, 90) ;Elije personaje 2
			   
			   If GUICtrlRead($Char3)=$GUI_CHECKED Then $radio="slot3"
				   Sleep(1000)
				   Mouseclick("left", 1700, 285, 2, 90)
				     Sleep(500)
			   Send (""&GUICtrlRead($User1))
			     Sleep(500)
			   MouseClick ("left", 1700, 310, 2, 90) 
			     Sleep(500)
			   Send (""&GUICtrlRead($Pass1))
			     Sleep(500)
			   MouseClick ("left", 1700, 335, 2, 90)
			     Sleep(500)
			   Send (""&GUICtrlRead($Gpass1))
			     Sleep(500)
			   Mouseclick ("left", 1700, 360, 1, 90)
			     Sleep(500)
			   Mouseclick ("left", 1450, 125, 2, 90) ;Elije personaje 3
			   
			   If GUICtrlRead($Char4)=$GUI_CHECKED Then $radio="Slot4"
				   Sleep(1000)
				   Mouseclick("left", 1700, 285, 2, 90)
				     Sleep(500)
			   Send (""&GUICtrlRead($User1))
			     Sleep(500)
			   MouseClick ("left", 1700, 310, 2, 90) 
			   Sleep(500)
			   Send (""&GUICtrlRead($Pass1))
			     Sleep(500)
			   MouseClick ("left", 1700, 335, 2, 90)
			     Sleep(500)
			   Send (""&GUICtrlRead($Gpass1))
			     Sleep(500)
			   Mouseclick ("left", 1700, 360, 1, 90)
			     Sleep(500)
			   Mouseclick ("left", 1650, 125, 2, 90) ;Elije personaje 4
pero no se en que fallo que dandole click a donde le de, siempre elije el personaje nº 1 no entiendo que esta mal, que puede ser?

saludos y gracias de nuevo
Avatar de Usuario
Fredinchy
Aprendiz de Mago
Mensajes: 32
Registrado: 30 Mar 2010, 01:27
Ubicación: Unknown

Re: GUI -> labels,checkbox y Buttons

Mensaje por Fredinchy »

Es que no estas usando correctamente el "If", cuando presionas el start el programa lee $char1 y si está chequeado la variable $radio la iguala a "slot1" y ya en el if no ocurre otra cosa, después continúa con la ejecución del script.. de hecho debería ejecutar los 4 "If" que has puesto porque como lo dije antes el if solo esta cambiando el valor de $radio.. Pero es fácil de solucionar y de entender. También recomendaría usar un switch cuando hay que usar más de 3 if. :smt016

Al final el while quedaría así

Código: Seleccionar todo

While 1
	$msg = GUIGetMsg() ;Captura las acciones en la GUI
	Switch $msg
		Case $GUI_EVENT_CLOSE ;si pulsan el boton cerrar de la GUI se cierra
			Exit
		Case $Startbutton ;si pulsan Start ocurre msgbox
			If GUICtrlRead($Char1) = $GUI_CHECKED Then ;si $char1 esta seleccionada hace.....
				Sleep(1000)
				MouseClick("left", 1700, 285, 2, 90)
				Sleep(500)
				Send("" & GUICtrlRead($User1))
				Sleep(500)
				MouseClick("left", 1700, 310, 2, 90)
				Sleep(500)
				Send("" & GUICtrlRead($Pass1))
				Sleep(500)
				MouseClick("left", 1700, 335, 2, 90)
				Sleep(500)
				Send("" & GUICtrlRead($Gpass1))
				Sleep(1000)
				MouseClick("left", 1700, 360, 1, 90)
				Sleep(10000)
				MouseClick("left", 1450, 90, 2, 90) ;Elije personaje 1
				Sleep(10000)
			EndIf

			If GUICtrlRead($Char2) = $GUI_CHECKED Then ;si $char2 esta seleccionada hace.....
				Sleep(1000)
				MouseClick("left", 1700, 285, 2, 90)
				Sleep(500)
				Send("" & GUICtrlRead($User1))
				Sleep(500)
				MouseClick("left", 1700, 310, 2, 90)
				Sleep(500)
				Send("" & GUICtrlRead($Pass1))
				Sleep(500)
				MouseClick("left", 1700, 335, 2, 90)
				Sleep(500)
				Send("" & GUICtrlRead($Gpass1))
				Sleep(500)
				MouseClick("left", 1700, 360, 1, 90)
				Sleep(500)
				MouseClick("left", 1650, 90, 2, 90) ;Elije personaje 2
			EndIf

			If GUICtrlRead($Char3) = $GUI_CHECKED Then ;si $char3 esta seleccionada hace.....
				Sleep(1000)
				MouseClick("left", 1700, 285, 2, 90)
				Sleep(500)
				Send("" & GUICtrlRead($User1))
				Sleep(500)
				MouseClick("left", 1700, 310, 2, 90)
				Sleep(500)
				Send("" & GUICtrlRead($Pass1))
				Sleep(500)
				MouseClick("left", 1700, 335, 2, 90)
				Sleep(500)
				Send("" & GUICtrlRead($Gpass1))
				Sleep(500)
				MouseClick("left", 1700, 360, 1, 90)
				Sleep(500)
				MouseClick("left", 1450, 125, 2, 90) ;Elije personaje 3
			EndIf

			If GUICtrlRead($Char4) = $GUI_CHECKED Then ;si $char4 esta seleccionada hace.....
				Sleep(1000)
				MouseClick("left", 1700, 285, 2, 90)
				Sleep(500)
				Send("" & GUICtrlRead($User1))
				Sleep(500)
				MouseClick("left", 1700, 310, 2, 90)
				Sleep(500)
				Send("" & GUICtrlRead($Pass1))
				Sleep(500)
				MouseClick("left", 1700, 335, 2, 90)
				Sleep(500)
				Send("" & GUICtrlRead($Gpass1))
				Sleep(500)
				MouseClick("left", 1700, 360, 1, 90)
				Sleep(500)
				MouseClick("left", 1650, 125, 2, 90) ;Elije personaje 4
			EndIf
	EndSwitch
	Sleep(50) ;sleep que NO es necesario. Lo utilizo para que el programa consuma menos recursos de la computadora
WEnd
Saludos! :smt020
Cause no one here can ever stop us! They can try but we won't let them! No way.. :smt020
ziknos
Aprendiz de Mago
Mensajes: 50
Registrado: 02 Mar 2009, 17:36

Re: GUI -> labels,checkbox y Buttons

Mensaje por ziknos »

Fredinchy escribió:Es que no estas usando correctamente el "If", cuando presionas el start el programa lee $char1 y si está chequeado la variable $radio la iguala a "slot1" y ya en el if no ocurre otra cosa, después continúa con la ejecución del script.. de hecho debería ejecutar los 4 "If" que has puesto porque como lo dije antes el if solo esta cambiando el valor de $radio.. Pero es fácil de solucionar y de entender. También recomendaría usar un switch cuando hay que usar más de 3 if. :smt016

Al final el while quedaría así

Código: Seleccionar todo

While 1
	$msg = GUIGetMsg() ;Captura las acciones en la GUI
	Switch $msg
		Case $GUI_EVENT_CLOSE ;si pulsan el boton cerrar de la GUI se cierra
			Exit
		Case $Startbutton ;si pulsan Start ocurre msgbox
			If GUICtrlRead($Char1) = $GUI_CHECKED Then ;si $char1 esta seleccionada hace.....
				Sleep(1000)
				MouseClick("left", 1700, 285, 2, 90)
				Sleep(500)
				Send("" & GUICtrlRead($User1))
				Sleep(500)
				MouseClick("left", 1700, 310, 2, 90)
				Sleep(500)
				Send("" & GUICtrlRead($Pass1))
				Sleep(500)
				MouseClick("left", 1700, 335, 2, 90)
				Sleep(500)
				Send("" & GUICtrlRead($Gpass1))
				Sleep(1000)
				MouseClick("left", 1700, 360, 1, 90)
				Sleep(10000)
				MouseClick("left", 1450, 90, 2, 90) ;Elije personaje 1
				Sleep(10000)
			EndIf

			If GUICtrlRead($Char2) = $GUI_CHECKED Then ;si $char2 esta seleccionada hace.....
				Sleep(1000)
				MouseClick("left", 1700, 285, 2, 90)
				Sleep(500)
				Send("" & GUICtrlRead($User1))
				Sleep(500)
				MouseClick("left", 1700, 310, 2, 90)
				Sleep(500)
				Send("" & GUICtrlRead($Pass1))
				Sleep(500)
				MouseClick("left", 1700, 335, 2, 90)
				Sleep(500)
				Send("" & GUICtrlRead($Gpass1))
				Sleep(500)
				MouseClick("left", 1700, 360, 1, 90)
				Sleep(500)
				MouseClick("left", 1650, 90, 2, 90) ;Elije personaje 2
			EndIf

			If GUICtrlRead($Char3) = $GUI_CHECKED Then ;si $char3 esta seleccionada hace.....
				Sleep(1000)
				MouseClick("left", 1700, 285, 2, 90)
				Sleep(500)
				Send("" & GUICtrlRead($User1))
				Sleep(500)
				MouseClick("left", 1700, 310, 2, 90)
				Sleep(500)
				Send("" & GUICtrlRead($Pass1))
				Sleep(500)
				MouseClick("left", 1700, 335, 2, 90)
				Sleep(500)
				Send("" & GUICtrlRead($Gpass1))
				Sleep(500)
				MouseClick("left", 1700, 360, 1, 90)
				Sleep(500)
				MouseClick("left", 1450, 125, 2, 90) ;Elije personaje 3
			EndIf

			If GUICtrlRead($Char4) = $GUI_CHECKED Then ;si $char4 esta seleccionada hace.....
				Sleep(1000)
				MouseClick("left", 1700, 285, 2, 90)
				Sleep(500)
				Send("" & GUICtrlRead($User1))
				Sleep(500)
				MouseClick("left", 1700, 310, 2, 90)
				Sleep(500)
				Send("" & GUICtrlRead($Pass1))
				Sleep(500)
				MouseClick("left", 1700, 335, 2, 90)
				Sleep(500)
				Send("" & GUICtrlRead($Gpass1))
				Sleep(500)
				MouseClick("left", 1700, 360, 1, 90)
				Sleep(500)
				MouseClick("left", 1650, 125, 2, 90) ;Elije personaje 4
			EndIf
	EndSwitch
	Sleep(50) ;sleep que NO es necesario. Lo utilizo para que el programa consuma menos recursos de la computadora
WEnd
Saludos! :smt020
ohh muchas gracias!, ya veo que era facil de rectificar y de entender, ya lo he entendido perfectamente:) voy a ver si sigo con el, ya lo posteare cuando lo tenga finalizado a ver si os gusta.

saludos!
Responder