Está en la página 1de 4

Cómo usar AutoHotkey (VII): control de ventanas en

Windows

Cómo usar AutoHotkey (VII): control y manejo de ventanas en


Windows
Posted by Javier ™

En esta nueva entrega sobre AutoHotkey explicaremos algo tan útil e interesante como es el manejo de ventanas de Windows en
una macro.

En primer lugar veremos cómo detectar si una determinada ventana se encuentra abierta y en tal caso activarla (enviarla a primer
plano).

Para comprobar si una ventana está abierta disponemos de los comandos IfWinExist y IfWinNotExist en los cuales indicaremos
el título de la ventana que deseamos comprobar.

En el siguiente ejemplo comprobamos si la calculadora se encuentra abierta y en caso contrario la abre, activándola luego con el
comando WinActivate:

1 ; {CTRL}{MAYÚSCULAS}{M} Activa la ventana de la calculadora o la abre si no se encuentra abierta: ?


2 ^+m::
3 IfWinExist Calculadora
4 {
5 WinActivate
6 }
7 else
8 {
9 MsgBox Pulsa para abrir la calculadora...
10 Run Calc
11 WinWait Calculadora
12 WinActivate
13 }
14 return

El comando WinWait hace que la ejecución de la macro se detenga unos instantes hasta que la ventana haya sido abierta y esté
operativa (observa que también se le pasa el título como parámetro).

Como veremos a continuación, una vez abierta una ventana podremos realizar acciones varias acciones con ella.

En este otro ejemplo se abre la calculadora si no lo está ya, y a continuación mediante el comando Send se envían de forma
automática pulsaciones de teclado con el fin de borrar el contenido que pueda tener, escribir dos números y sumarlos:

1 ; {CTRL}{MAYÚSCULAS}{N} Activa o abre la calculadora y realiza una suma: ?


2 ^+n::
3 IfWinNotExist Calculadora
4 {
5 Run Calc
6 Wi W it C l l d
6 WinWait Calculadora
7 }
8 WinActivate Calculadora
9 Send {Del}
10 Send 350
11 Send {NumpadAdd}
12 Send 150
13 Send {NumpadEnter}
14 return

Con {NumpadAdd} y {NumpadEnter} se envían a la calculadora las pulsaciones de las teclas ‘+’ y Enter del teclado numérico.

Veamos ahora otro ejemplo en el que se abre el bloc de notas si no está abierto, y a continuación mediante el comando Send se
inserta una línea de texto:

1 ; {CTRL}{MAYÚSCULAS}{B} Activa una ventana del block de notas e inserta un texto: ?


2 ^+b::
3 IfWinNotExist Sin título: Bloc de notas
4 {
5 Run Notepad
6 WinWait Sin título: Bloc de notas
7 }
8 WinActivate Sin título: Bloc de notas
9 Send Escribiendo en el bloc de notas de AutoHotkey.`n
10 return

Con `n se insertará una nueva línea.

La siguiente es una macro que resultará muy útil a más de uno, ya que permite tener una ventana siempre visible (en este caso
la calculadora de Windows), para lo cual utilizaremos en este caso el comando Winset:

1 ; {CTRL}{MAYÚSCULAS}{V} Dejar siempre visible la calculadora ?


2 ^+v::
3 IfWinNotExist Calculadora
4 {
5 Run Calc
6 WinWait Calculadora
7 }
8 WinActivate Calculadora
9 Winset Alwaysontop, On, Calculadora
10 return

Este otro código mantendrá siempre visible la ventana que se encuentre activa en el momento de pulsar la combinación de teclado
especificada:
1 ; {CTRL}{MAYÚSCULAS}{C} Deja siempre visible la ventana que se encuentre activa ?
2 ^+c::Winset, Alwaysontop, On, A

Con esta macro es posible tener varias ventanas que estén siempre visibles.

Para que una ventana deje de estar siempre visible, tras hacer clic sobre ella para activarla pulsaremos de nuevo la misma
combinación de teclado.

Por otro lado, si deseamos mover una ventana a otra posición de la pantalla utilizaremos el comando WinMove indicando las
coordenadas X e Y (fila y columna) relativas a la parte superior izquierda de la pantalla respectivamente:

1 ; {CTRL}{MAYÚSCULAS}{X} Abrir y mover ventana ?


2 ^+x::
3 Run Calc
4 WinWait Calculadora
5 WinMove 50, 100
6 return

Mediante los comandos WinMinimize y WinClose podemos minimizar y cerrar ventanas:

1 ; {CTRL}{MAYÚSCULAS}{Z} Abrir y minimizar ventana ?


2 ^+z::
3 Run Calc
4 MsgBox Haz clic en Aceptar para minimizar la calculdora...
5 WinMinimize Calculadora
6 MsgBox Haz clic en Aceptar para cerrar la calculadora...
7 WinClose Calculadora
8 return

¿Que necesitas mostrar y ocultar una ventana? no hay problema, con AutoHotkey también podrás hacerlo con los comandos
WinHide y WinShow:

1 ; {CTRL}{MAYÚSCULAS}{A} Mostrar y ocultar ventana ?


2 ^+a::
3 Run Calc
4 MsgBox Haz clic en Aceptar para ocultar la calculadora...
5 WinHide Calculadora
6 MsgBox Haz clic en Aceptar para volver a mostrar la calculadora...
7 WinShow Calculadora
8 WinActivate Calculadora
9 return

Por último veamos otro ejemplo en el que con una macro escribimos texto en una venta oculta del block de notas, y con otra
mostramos dicha ventana:

1 ; VARIABLE GLOBAL ?
2 idventana2 = ""
3 ; {CONTROL}{MAYÚSCULAS}{B} Escribe en una ventana del block de notas oculta
4 ^+b::
5 if( idventana2 == "" )
6 {
7 Run Notepad,,, idventana2
8 WinWait Sin título: Bloc de notas
9 WinHide ahk_pid %idventana2%
10 }
11 ; Activar la ventana (para poder escribir en ella)
12 WinActivate ahk_pid %idventana2%
13 ; Escribir el texto
14 Send Escribiendo en el bloc de notas de AutoHotkey.`n
15 return
16 ; {CONTROL}{MAYÚSCULAS}{d} Muestra la ventana oculta
17 ^+d::
18 WinShow ahk_pid %idventana2%
19 return

En este caso se ha creado una variable global para almacenar el identificador de la ventana (que será guardado en ella por el
En este caso se ha creado una variable global para almacenar el identificador de la ventana (que será guardado en ella por el
comando Run).

Si bien los comandos mencionados en este post son los de uso más habitual, AutotHotkey dispone de otros con los que es posible
realizar otra clase de acciones.

Si has llegado a este post y te interesa el tema pero te encuentras un poco perdido, te recomiendo que comiences por este primer
post de la serie sobre AutoHotkey en el que describimos algunos aspectos de uso básicos.

> SUSCRÍBETE <

Acepto la Política de Privacidad


Los datos recopilados tienen como finalidad el envío de novedades sobre contenidos formativos propios (tanto en modalidad gratuita como de pago) y
de terceros en calidad de afiliado, así como también noticias, información y otros contenidos relacionados con la informática y las nuevas tecnologías,
siendo responsable de dicha información Francisco Javier Medina Medina (propietario de InformaticaPC.com).
Al obtener tu consentimiento los datos serán almacenados en el proveedor de E-Mail marketing MailRelay. Por supuesto, en cualquier momento podrás
hacer uso de tus derechos para acceder, rectificar, limitar y suprimir dichos datos.

Este artículo fue publicado en Blog, Microsoft Windows y etiquetado AutoHotkey, Automatizar tareas por Javier ™. Enlace permanente.