martes, 26 de agosto de 2008

Tutorial para muy novatos

Otro texto que escribí hace tiempo en relación a Sindarin, esta vez es un tutorial, muy simple:

Tutorial para muy novatos...(Revisado)

Vamos a aprender a hacer scripts, muy, muy sencillos...

click:

Este comando sirve para que se haga un click con el ráton en un punto de pantalla, para usarlo basta con poner "click" seguido de "left" (izquierdo en ingles) si quieres que use el botón izquierdo del ratón o "right" (derecho en ingles) y después tienes que poner el punto donde quieres que se haga "click". Por ejemplo:

click left [100,100]
click right [500,500]

Eso si, el punto tienes que escribirlo entre corchetes y separado por una coma [ , ] por que si no, no funcionara. Ya esta, eso es todo. Quizás tengas alguna duda de como averiguar el punto en el que quieres hacer click, para eso usa el botón capturar de la pestaña "location":


Si pulsas en "Capturar" y luego donde quieres que se haga click saldrán los números en donde pone X e Y. ¿Fácil verdad?

dclick:

Supongamos que queremos hacer un doble click con el ratón(pulsar dos veces muy rápido) para ello usamos este comando, que funciona igual que el anterior, escribes "dclick" seguido de "left" si quieres que el click se haga con el botón izquierdo o "right" si quieres que se haga con el derecho y luego pones el punto donde quieres que se haga, por ejemplo:

dclick left [25, 25]
dclick right [25, 25]

para ver el punto usa el botón capturar de la pestaña Location, como en click.

wait (esperar...)

¿Necesitas que el programa se pare un poco entre comando y comando? Para ello usa el comando "wait", escribes "wait" seguido de un numero de segundos que quieres que Sindarin se pare y ya esta por ejemplo:

wait 30

También puede hacer que se pare un numero de minutos:

wait 1 min
wait 15 min

pushkey (pulsar tecla)

Para que se pulse una tecla, para por ejemplo usar una macro, para ello escribimos "pushkey"(pulsar tecla en ingles) seguido de la tecla entre comillas simples 'tecla' por ejemplo:

pushkey 'a'
pushkey '1'
pushkey 'F1'
pushkey 'F12'

Aquí vemos como pulsamos la tecla "a", el "1", la tecla de función "F1" y la "F12".

Este comando es un poco largo de escribir, pero se puede escribir de varias formas, aunque hacen lo mismo:

pkey 'f5'
pkey 'b'
key 'C'
key '3'

Aquí hemos pulsado la tecla de función "F5", luego la "b", luego la "c" y por ultimo el "3", se puede escribir de cualquiera de esas formas y hará lo mismo.

drag (arrastrar)

¿Que pasa si queremos mover objetos de un sitio a otro?, tenemos el comando "drag", que sirve para mover objetos. Funciona escribiendo "drag" seguido de un numero, que sera el numero de objetos que vamos a mover, luego un punto donde estarán los objetos al principio y luego un punto donde queremos que deje los objetos, por ejemplo:

drag 1 [100,100] [25,25]
drag 12 objects [103,10] [205,25]
drag 25 [3,3] [2,2]

Primero movemos un objeto desde el punto [100,100] hasta el [25,25], luego movemos doce objetos desde el [103, 10] hasta el [205, 25], la palabra "objects" solo sirve para que sea mas fácilmente comprensible, no es realmente necesaria, y finalmente movemos veinticinco objetos desde [3,3] hasta [2,2].

Los puntos los podemos averiguar como hacíamos en el comando "click".

repeat (repetir)


Supongamos que queremos hacer una macro que pulse cuatro veces la tecla "F12" y haga una pausa de un segundo, por ejemplo:

pushkey 'F12'
wait 1
pushkey 'F12'
wait 1
pushkey 'F12'
wait 1
pushkey 'F12'
wait 1

Esto lo haría, pero... ¿no hay una forma de hacer que sindarin repita eso 4 veces sin que yo tenga que escribir cuatro veces lo mismo? Si para eso es el "repeat", funciona poniendo "repeat" seguido del numero de veces que quieres que se repita algo, luego el signo "{", luego los comandos que quieres que se repitan y terminas con otro símbolo "}", el ejemplo anterior nos quedaría así:

repeat 4
{
pushkey 'F12'
wait 1
}

Ya esta, no es muy complicado...

"Bufff pero eso del símbolo { y el símbolo } es un poco feo... ¿no?"

También puedes sustituir "{", "}" con "begin" y "end", así:

repeat 4
begin
 pushkey 'F12'
 wait 1
end

Cualquiera de las dos formas de escribirlo funcionara.

while (mientras)

"Vaya parece que solamente me ejecuta el script una sola vez, si escribo:"

pkey 'F1'
wait 1

"Solo me pulsa 'F1' una vez  y se detiene...¿Como puedo hacer que el script se repita muchas veces?"

La solución es usar "while" o "repeat" podrías poner un "repeat" muy grande:

repeat 40000
{
 pkey 'F1'
 wait 1
}

es decir, pones todo lo que quieres que se repita dentro de un "repeat" muy grande, en este caso se repetiría cuarenta mil veces, pero otra solución mucho mas elegante es:

while true
{
 pkey 'f1'
 wait 1
}

"While" sirve para repetir muchas veces unos comandos pero que en vez de repetirse un numero de veces se repite mientras se cumpla la condición escrita tras el. En el ejemplo como la condición de "while" es "true" (que significa que siempre es verdad), este código se repetiría para siempre, ¡¡Seria infinito!!


Teóricamente "while" no terminaría nunca, mientras que "repeat" se repite una serie de veces, pero en la practica es difícil que llegue a repetirse cuarenta mil veces, pero... nunca se sabe, además el "while" es mas elegante.

Pero... ¿como parar ese código infinito?

Bueno hay comandos que permiten detener el script:
  • "Break": Dentro del "while" haria que este terminara y por lo tanto el script.
  • "exit": En cualquier parte del script para totalmente el script.
En la ventana de Sindarin existen dos formas de parar cualquier código, pulsando el botón naranja de "Stop":

O manteniendo pulsado un tiempo (un segundo suele ser suficiente) la tecla "Pause/Break":

Esto ultimo solo funciona en Windows.

Bueno... Con esto ya podrías escribir tus propios scripts de forma sencilla, ahora si quieres profundizar y hacer cosas mas complicadas puede que te sean útiles estos dos post:


  1. Una explicación de todos los comandos de Sindarin.
  2. Algunas macros que me eran útiles en mis tiempos...

No hay comentarios:

Publicar un comentario