ABC para Novatos 3: #IfWinActive

Consejos y trucos de programación en AutoHotkey
Guill
Posts: 73
Joined: 09 Jun 2016, 22:00

ABC para Novatos 3: #IfWinActive

27 Aug 2016, 16:17

AVISO: No creo que pueda responder preguntas, porque apenas conozco lo que comparto. Ojalá les sirva y entre todos, vayamos ayudando a elaborar un tutorial de AHK.

__________________________________________


3. #IfWinActive

La principal utilidad de este parámetro es la de condicionar que lo que figura entre sus límites de inicio y de fin, para que tal combinación de teclas sólo funcione para ese programa / ventana, etc.


La estructura es ésta:


#IfWinActive ..... (instrucciones de dónde funciona)

[Hotkeys, Hotstrings o Macros que sólo funcionarán en determinado programa o carpeta]

#IfWinActive (Solo. Con esto simplemente, se cierra el condicionante)

Lo que esté antes o después de esto funcionará en general, en todos los programas.

Por ejemplo

#IfWinActive ahk_exe Chrome.exe
F2::
Send {Ctrl Down}
Send {Tab}
Send {Ctrl Up}
Return

F3::
Send {Ctrl Down}
Send {LShift Down}
Send {Tab}
Send {Ctrl Up}
Send {LShift Up}
Return

F9::Soundset, mute
F10::Soundset, -5
; F11:: No lo usaremos, porque sirve para Pantalla Completa
F12::Soundset, +5

#IfWinActive


F2:: Run Calc

F3::
Run Notepad
Run http://www.wikipedia.com
Return

::::: QUÉ SIGNIFICA ESTO

Que mientras esté activa la ventana de Chrome, (por eso utilizamos ahk_exe Chrome.exe), las teclas F2 y F3 tendrán un uso exclusivo y específico (las macros que aquí se ejecutan, sirven para pasar de una pestaña a otra: F2 pasa a la siguiente y F3, a la anterior).
Las demás:
F9 = silencia el volumen general
F10 = disminuye gradualmente el volumen
F11 = no hace nada por este programa; en este caso elijo que tenga la función asignada originalmente por chrome (y que es usada habitualmente en varios programas) de hacer pantalla completa de la página web.
F12 = aumenta gradualmente el volumen

Véase que luego del segundo #IfWinActive hay otras funciones para F2 y F3.
Al estar fuera, sirven para cualquier tipo de programa, por lo cual: si se activa otra ventana, producirán el otro efecto general (F2, abrirá la calculadora, y F3, abrirá el block de notas y la web de wikipedia)

ACLARACIÓN: Si no fuera por los #IfWinActive, el programa detectaría un error al recibir dos órdenes distintas para F2 y F3.



:::::: CÓMO DETECTAR LA VENTANA / EL PROGRAMA AL QUE SE LE QUIERE APLICAR

Utilizar "Windows Spy" que se activa haciendo click derecho en la H verde del programa (en la barra de tareas) y seleccionándolo.

Este espía (Spy) te dirá la información del programa en el primer cuadro que aparece, llamado "window tittle, class and process"
Lo que más importará para un principiante, será la ahk_exe (el programa que estará ejectuando)

Eventualmente puede servir sólo la ahk_class, como en el siguiente ejemplo, en el que cada vez que se presione F9, se creará un nuevo archivo de texto, mientras esté activa una carpeta de windows.

; IFWINACTIVE CARPETAS DE WINDOWS
#IfWinActive ahk_class CabinetWClass
F9:: ; CREAR UN NUEVO DOC. DE TEXTO (TXT)
MouseClick, Right
Send {Up 2}
Send {Right}
Send {Up 3}
Send {Enter}
Return
#IfWinActive


NOTA. Véase que no es necesario usar Loop para repetir una única tarea, alcanza con poner el número de veces, tal como figura en {Up 2} y {Up 3} (si fuera una letra o número, también debería ir entre llaves: ejemplo Send {M 3}).
En el ejemplo, presionará dos y tres veces seguidas la tecla "arriba" (Up)

:::::::: VALOR DE ESTA HERRAMIENTA

1. Utilizar teclas como las Funciones (F1-F12) con usos específicos para cada programa / Ventana

2. Crear con el mismo hotkey/hotstring, una misma tarea o macro que habitualmente los programas hacen con diferentes pasos o clickeos.

Ejemplo: exportar a pdf, se hace de distinto modo en word, excel, powerpoint, etc.

Si se usa el mismo hotkey, pero que en cada programa / ventana sigue pasos distintos, no tendremos que memorizar más que una combinación de teclas para que en todos haga la misma tarea.


:::::::::::::: FIN ::::::::::::::::

Return to “Tutoriales”

Who is online

Users browsing this forum: No registered users and 1 guest