Cambio depende de la pagina

Esta sección es para preguntas sobre programación/scripting usando AutoHotkey.

Moderator: Flipeador

Aprendiendo
Posts: 16
Joined: 24 Jan 2019, 13:00

Cambio depende de la pagina

26 Feb 2019, 14:26

Hola, me gustaría saber si es posible hacer que depende de en que sitio está el script funcione de una manera o otra. Por ejemplo si estoy en YouTube el F2 haga ^{w} pero si estoy en otro sitio no. Si no es posible hacerlo depende de la web, al menos depende del programa (solo si no se puede de la otra forma)
devnullsp
Posts: 73
Joined: 21 Nov 2017, 09:00

Re: Cambio depende de la pagina

13 Mar 2019, 19:00

Si que es posible,

Mirate https://autohotkey.com/docs/commands/Hotkey.htm

En concreto la opción:

Code: Select all

Hotkey, IfWinActive/Exist , WinTitle, WinText
Que es básicamente lo que tu quieres....

Un Saludo
Aprendiendo
Posts: 16
Joined: 24 Jan 2019, 13:00

Re: Cambio depende de la pagina

14 Mar 2019, 13:11

Lo he intentado pero con google no me funciona, perdona mi ignorancia
A_AhkUser
Posts: 1147
Joined: 06 Mar 2017, 16:18
Location: France
Contact:

Re: Cambio depende de la pagina

14 Mar 2019, 13:15

Para perfeccionar la respuesta que ha dado aqui (dado que tu pregunta es prácticamente igual en ambos casos) y simplificarla, teniendo en cuenta la sugerencia de devnullsp:

Code: Select all

SetTitleMatchMode, RegEx

Hotkey, IfWinActive, (.*- )?YouTube(?= - Mozilla Firefox$) ahk_class MozillaWindowClass ahk_exe firefox.exe
Hotkey, F4, subrutina
return

subrutina:
MsgBox, TEST
return
o

Code: Select all

SetTitleMatchMode, RegEx
#IfWinActive (.*- )?YouTube(?= - Mozilla Firefox$) ahk_class MozillaWindowClass ahk_exe firefox.exe
	F4::MsgBox, TEST
#IfWinActive
my scripts
devnullsp
Posts: 73
Joined: 21 Nov 2017, 09:00

Re: Cambio depende de la pagina

14 Mar 2019, 15:51

Por curiosidad A_AhkUser usar RegEx consume mucho o tu no notas nada?
A_AhkUser
Posts: 1147
Joined: 06 Mar 2017, 16:18
Location: France
Contact:

Re: Cambio depende de la pagina

16 Mar 2019, 08:57

devnullsp wrote:
14 Mar 2019, 15:51
Por curiosidad A_AhkUser usar RegEx consume mucho o tu no notas nada?
@devnullsp
Hola, no, no noto nada, por lo menos, en el mundo real.
Es cierto que, en un entorno de producción, se recomienda que el comportamiento de SetTitleMatchMode sea configurado 'sobre la marcha', a nivel local:

Code: Select all

#If WinActiveRegEx("(.*- )?YouTube(?= - Mozilla Firefox$) ahk_class MozillaWindowClass ahk_exe firefox.exe")
	F4::MsgBox % A_ThisHotkey
#If

WinActiveRegEx(_wintitle) {
	local _titleMatchMode := A_TitleMatchMode
	SetTitleMatchMode, RegEx
	_hwnd := WinActive(_wintitle)
	SetTitleMatchMode % _titleMatchMode
return _hwnd
}
Por muy innecesariamente complejo que parezca el script del vinculo anterior, presenta la ventaja de llamar la función RegExMatch únicamente si se han cumplido los requisitos. Es preciso considerar al menos otra una opcion por lo que es adecuado para entornos de producción: sacar partido del 'cortocircuito' lógico de los operadores booleanos OR/AND o/y del único operador ternario de ahk ?: - a modo de ejemplo:

Code: Select all

SetTitleMatchMode, RegEx
Hotkey, If, WinActive("ahk_class MozillaWindowClass ahk_exe firefox.exe") && WinActive("(.*- )?YouTube(?= - Mozilla Firefox$)")
	Hotkey, F4, test
return

test:
	MsgBox % A_ThisLabel
return

#If WinActive("ahk_exe firefox.exe") && WinActive("(.*- )?YouTube(?= - Mozilla Firefox$)") ; !known limitation: if Expression contains an and/or operator, it is not recognized as an existing expression. As a workaround, use the equivalent &&/|| 
#If
Aprendiendo wrote:Lo he intentado pero con google no me funciona, perdona mi ignorancia
@Aprendiendo Lo siento pero no tengo chrome para comprobar, mas es possible que el ultimo script funcione con el navegador chrome con tal que sustituyas 'firefox' y 'Mozilla Firefox' por 'chrome' y 'Google Chrome', respectivamente.


Saludos
my scripts

Return to “Pedir Ayuda”

Who is online

Users browsing this forum: No registered users and 18 guests