|     Inicio    |   |         |  |   FOROS      |  |      |      
   Elastix - VoIP B4A (Basic4Android) App inventor 2 PHP - MySQL
  Estación meteorológica B4J (Basic4Java) ADB Shell - Android Arduino
  Raspberry Pi Visual Basic Script (VBS) FireBase (BD autoactualizable) NodeMCU como Arduino
  AutoIt (Programación) Visual Basic Cosas de Windows Webs interesantes
Translate:
Búsqueda en este sitio:


.

Autoit en español
Aplicaciones con Autoit - Juan Antonio Villalpando

-- Tutorial de iniciación a Autoit --

Volver al índice del tutorial

____________________________

117.- Otro bloqueo de ordenador. Estudio de un Temporizador en vez del Sleep.

- Vamos a seguir este tutorial: http://www.elitepvpers.com/forum/autoit/403140-tutorial-how-make-bot.html

- Aprenderemos a utilizar un temporizador en vez del Sleep, ya que cuando utilizamos éste, la aplicación se queda bloqueada y no podemos hacer nada hasta que no termine la temporización.

- Este script no lo ejecutes porque se quedará el ordenador bloqueado.

- En key escribes un texto corto y en time 5000.

- Cada 5 segundos enviará ese texto a la ventana que tengas abierta y acepte texto (por ejemplo el Bloc de notas).

- Te costará trabajo cerrar este script ya que está continuamente en bucle y además está en estado de Sleep la mayor parte del tiempo. Mientras está en Sleep, está bloqueado.

Bloqueo el ordenador.
				   
#include <GUIConstantsEx.au3>

# Creación de los controles
GUICreate("Título de la ventana.", 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)
# Fin de creación de los controles

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

- Mientras la aplicación está en Sleep, no puede hacer otra cosa, no podemos pulsar teclas mientras está en el tiempo de Sleep. Para que pueda temporizar y además tenga la posibilidad de hacer otra cosa se utiliza un Timer.

- Aquí tenemos un código de temporización parecido al Sleep, pero se puede pulsar las teclas durante el tiempo temporizado.

- Crea un tiempo inicial en TimerInit y va consultando TimerDiff hasta que la diferencia se 3 segundos.

Temporizador. Timer.

Temporizador. Timer.
$timer = TimerInit()

While 1
    $timed = TimerDiff($timer)
    If $timed > 3000 Then ; we use greater than (>) because sometimes it might get skipped
        MsgBox(1,"TimerDiff","TimerDiff : "&$timed)
        $timer = TimerInit()
    EndIf
WEnd

- En el siguiente código se inserta un Temporizador y podemos pararlo fácilmente.

Código con Temporizador para poderlo parar.
				   
Dim $timer, $run = False, $label[2]=['Start','Stop']

# Creación de los controles
$gui = GUICreate("Forsaken's Bot", 335, 100)
GUISetState()
GUICtrlCreateLabel("Key", 8, 10)
$key1 = GUICtrlCreateInput("", 35, 8, 120)
GUICtrlCreateLabel("Time", 8, 44)
$time1 = GUICtrlCreateInput("", 35, 40, 120)
$button = GUICtrlCreateButton($label[$run], 190, 8, 60)
# Fin de creación de los controles

While 1
    Switch GUIGetMsg()

        Case -3
            ExitLoop
        Case $button
            $run = Not $run
            GUICtrlSetData($button, $label[$run])
            $timer = 0
        Case Else
                If $run Then
                    If TimerDiff($timer) > GUICtrlRead($time1) And Not WinActive($gui) Then
                        Send(GUICtrlRead($key1))
                        $timer = TimerInit()
                    EndIf
                EndIf

    EndSwitch
WEnd

- Con este código enviamos mediante Send el número "1" si el color del elemento pulsado es igual al color del elemento pulsado anteriormente.

- Abre el Bloc de notas y ejecútalo. Pulsa F2

Obtener color y escribir "1"
				   
HotKeySet("{F2}", "_getDefault")

$x = 0
$y = 0
$color = 0
$newColor = 0
$status = "off"

While 1
    If $status = "on" Then
        If _getCurrentColor($x, $y) <> $color Then
            Send("1")
        EndIf
    EndIf
WEnd

Func _getDefault()
    $coord = MouseGetPos()
    $x = $coord[0]
    $y = $coord[1]
    $color = Hex(PixelGetColor( $coord[0], $coord[1]), 6)
    $status = "on"
EndFunc

Func _getCurrentColor($xDef, $yDef)
    $newColor = Hex(PixelGetColor( $xDef, $yDef), 6)
    Return ($newColor)
EndFunc

_____________________________________________________________
- Propuestas.

- Script para crear un laberinto aleatorio:

https://www.autoitscript.com/forum/topic/187454-a-maze-ing-generator/

_____

 

- Mi correo:
juana1991@yahoo.com
- KIO4.COM - Política de cookies. Textos e imágenes propiedad del autor:
© Juan A. Villalpando
No se permite la copia de información ni imágenes.
Usamos cookies propias y de terceros que entre otras cosas recogen datos sobre sus hábitos de navegación y realizan análisis de uso de nuestro sitio.
Si continúa navegando consideramos que acepta su uso. Acepto    Más información