10Aug
¿Alguna vez ha necesitado realizar la misma tarea sin sentido una y otra vez en su PC?En lugar de perder horas haciendo clic en los botones y presionando las teclas, este es el momento perfecto para utilizar sus habilidades de AutoHotkey para hacer que su PC haga el trabajo por usted.
Nota: Este ejemplo particular es uno real que utilicé anteriormente para ahorrar una pequeña cantidad de tiempo, pero estas son técnicas que he usado muchas veces a lo largo de los años para ahorrarme literalmente días de tiempo.
El escenario
Estaba tratando de eliminar un montón de mensajes de difusión incorrectos en nuestra cuenta de boletín de correo electrónico, cuando me di cuenta de que su interfaz me obligaba a hacer clic manualmente en el botón Eliminar y luego confirmarlo en cada mensaje: 'Estamos hablando de 300 mensajes incorrectos que deben borrarse. Para empeorar las cosas, la interfaz es extremadamente lenta, lo que significa que habría pasado unos buenos 30-40 minutos simplemente haciendo clic y empeorando el túnel carpiano.
En vez de hacer eso, creé un nuevo script de AutoHotkey y redacté rápidamente un script para hacer el trabajo por mí.
El primer paso fue identificar exactamente qué clics y claves necesitaba para automatizar; obviamente, el primer paso es hacer clic en el botón X, que abre este cuadro de diálogo de confirmación de Ajax:
Afortunadamente, el botón Eliminar se resalta automáticamente, por lo que puede simplementepresiona la tecla Espacio para confirmar. Una vez que se ha eliminado el registro, todo se desliza hacia arriba como si la fila nunca estuviera allí.Sabiendo esto, avanzaremos y crearemos un script que automatice haciendo clic en el botón X, esperando 3 segundos para el diálogo de confirmación, presionando la barra espaciadora, y luego esperamos otros 3 segundos para que la fila desaparezca.
Creación del script
Lo primero que querremos hacer es crear un ciclo que repita las mismas acciones varias veces; en este caso, estimamos que tendremos que repetir esto 300 veces, por lo queUsaremos la sintaxis de Loop así:
Loop 300
{
}
Ahora necesitaremos automatizar la acción de hacer clic, lo cual es fácil en AutoHotkey; simplemente escriba , haga clic en .Puede utilizar una sintaxis de clic más avanzada si lo desea, elegir exactamente dónde desea que haga clic en la pantalla, o elegir el clic del botón. Para nuestros propósitos, solo utilizaremos el valor predeterminado, lo que nos deja con esto:
Loop 300
{
haga clic en
}
Ahora nuestro script hará clic 300 veces seguidas, pero desafortunadamente tenemos ese diálogo de confirmación paratratar, así que ahora usaremos la función Enviar para enviar la barra espaciadora a la ventana activa.
Loop 300
{
haga clic en
Send,{ Space}
}
Si mira la documentación, verá toda la sintaxis de las teclas especiales: las pulsaciones normales de teclas se pueden ingresar normalmente, por ejemplo, si desea escribir prueba y luego termina con un espacio, usarías esto:
Enviar, prueba{ espacio}
Así que ahora tenemos un script que hace clic en el botón y luego golpea la barra espaciadora, lo que estaría bien, excepto la interfazes lento, por lo que debemos insertar una pequeña pausa entre cada ejecución de las funciones de hacer clic y enviar. Para lograr esto, usaremos la función Sleep, que solo toma un argumento, el retraso en milisegundos.
Loop 300
{
sleep 3000
haga clic en
sleep 3000
Send,{ Space}
}
Ahora tenemos un script que eliminará los elementos con éxito, esperando 3 segundos antes de que se inicie para que pueda mover el cursor del mousesobre la primera X, haciendo clic en el botón, esperando 3 segundos, presionando la barra espaciadora, y luego esperando 3 segundos antes de pasar al siguiente conjunto. Podría usar este sencillo script en este momento si quisiera, pero ¿y si quiere detener el script?
Lo que haremos es utilizar la función GetKeyState para comprobar si ha pulsado una tecla determinada; para realizar pruebas, usaremos la tecla F8 y agregaremos lo siguiente en el medio del ciclo. Esto detectará si se presionó la tecla F8 y luego utilizará el salto para salir del ciclo.
GetKeyState, state, F8
if estado = D
break
El script final
Aquí está el script final, todo junto, lo que probablemente no lo ayudará demasiado, ya que es específico de mi escenario, pero puede usarlo para crear supropios scripts simplemente modificando los clics y enviando las teclas.
Loop 300
{
GetKeyState, estado, F8
si estado = D
descanso
reposo 3000
clic
reposo 3000
Enviar,{ Espacio}
}
Retorno
Para ilustrar cómo funciona esto en la práctica, aquí hay un video rápido quelo muestra en acción:
En este escenario en particular, tardé cerca de 3 minutos en armar un script de tiempo de trabajo guardado: 27 minutos.¡Solo el tiempo suficiente para grabar el video y escribir este artículo!