rodar o script dentro do chrome

Tire suas dúvidas sobre programação em AutoHotkey

Moderator: Gio

cimerio7
Posts: 11
Joined: 30 May 2019, 12:06

rodar o script dentro do chrome

29 Aug 2019, 10:24

Pessoal, fiz um script que manipula controles e dados em formulários de páginas no Chrome.
Porem, estou com dificuldades para entender como eu posso disparar o script dentro dele. É o seguinte. O script começa assim:

Code: Select all

#SingleInstance force
SetKeyDelay, 4		

FormatTime, CurrentDateTime,, dd/MM/yyyy


#IfWinActive WhatsApp
;#IfWinActive - Google Chrome

!q::


InputBox, nome, Digite o nome do sacado:
MsgBox, Vamos rodar a macro  :)

if (nome = "ajax"){
	Run, chrome.exe https www.tjms.jus.br   Broken Link for safety
	CoordMode, Mouse , Client
	Click, 1000, 440
	Sleep, 1000
	Send, camp{enter}
Eu estou disparando o script apertando Alt + Q dentro da janela Whatsapp. Aquele aplicativo que instala via desktop. Se eu usar o mesmo comando com a janela do Chrome aberta, não ocorre nada. Mas é muito chato ter que abrir a janela Whatsapp e apertar o comando lá. Eu queria ter só o navegador aberto pra rodar o script.
Então, fico na dúvida. Esse comando WinActive é relacionado ao arquivo .exe, ao processo ou ao nome da janela?
Quando eu abro uma instância do Chrome, aparece Nova Guia no nome da janela. Mas o problema é que cada vez que rodo o script, ele abre uma nova aba, com o nome da página que indico no script. Isso eu gosto, mas será que o script ainda rodaria, tendo cada aba em foco um nome diferente de Nova Guia??
User avatar
Gio
Posts: 684
Joined: 30 Sep 2013, 10:54
Location: Brazil

Re: rodar o script dentro do chrome

29 Aug 2019, 11:10

Bom dia Cimerio7.

O comando que você está usando (#IfWinActive, não confundir com IfWinActive) cria hotkeys condicionais, ou seja, nenhum código delas executa se a condição não estiver presente. A condição que você está usando no caso é um nome de janela. Se a janela ativa atual não tiver esse nome, nenhum código da hotkey será executado.

Vejo que deu certo pra você com o WhatsApp porque a janela dele deve ter este nome (ou pelo menos uma parte dele dependendo da condiguração SetTitleMatchMode). Só que quando você usa o #IfWinActive ele filtra tudo o que não satisfaz à condição, então usar o comando duas vezes não vai levar a duas possibilidades de ativação do código e sim à tudo ser filtrado (pois não tem como uma janela ter dois nomes ao mesmo tempo).

Em relação ao uso do nome de janela Google Chrome, eu verifiquei com o Window Spy (ferramenta embutida do AutoHotkey que você acessa clicando com o botão direito no ícone de H verde sempre que um script esteja em execução) que o nome da janela do Google Chrome varia de acordo com a aba ativa. Então não creio que seja uma boa ideia usar o nome de janela nesse caso (a não ser que você realmente esteja planejando pelo nome da aba). Uma outra opção então é usar a classe de janela que você pode indiciar escrevendo ahk_class Chrome_WidgetWin_1 (essa é a classe da janela do chrome que aparece para mim, mas você tem que verificar se a sua também é essa com o Window Spy).

Outra opção que você tem, se quiser deixar a hotkey ativa "somente em 2 janelas" é usar o IfWinActive no lugar do #IfWinActive. Ao invés de criar uma hotkey condicional, o IfWinActive cria uma condicional para um bloco de códigos. Então o que você faria seria escrever o código a ser ativado em cada caso de janela ativa em blocos diferentes dentro da mesma hotkey (opcionalmente escrevendo um return para qualquer outro caso).

Se tiver alguma dificuldade de implementar qualquer das opções descritas acima ou precisar de maior esclarecimento, basta postar abaixo :thumbup:
cimerio7
Posts: 11
Joined: 30 May 2019, 12:06

Re: rodar o script dentro do chrome

05 Sep 2019, 13:26

Oi, Gyo.
Usando #IfWinActive ahk_class Chrome_WidgetWin_0
não funcionou. Eu clico o comando e o script não roda.
Se eu colocar IfWinActive sem a cerquilha aparece erro: ==> IfWin should be #IfWin.
User avatar
Gio
Posts: 684
Joined: 30 Sep 2013, 10:54
Location: Brazil

Re: rodar o script dentro do chrome

06 Sep 2019, 11:13

Bom dia Cimerio.

Vou te dar um exemplo de uso do IfWinActive (condicional) junto com uma hotkey.

O código abaixo tem uma hotkey F2 que implementa um bloco de códigos condicionado à janela do chrome estar aberta (e outro caso não esteja). Também tem um bloco que roda quando o WhatsApp estiver ativo.

Code: Select all

~f2::
IfWinActive, Ahk_Class Chrome_WidgetWin_1
{
ToolTip, Olha o chorme ativo ae!
Return
}
IfWinNotActive, Ahk_Class Chrome_WidgetWin_1
{
ToolTip, Cade o chrome?! Não está ativo!
Return
}
IfWinActive, WhatsApp
{
ToolTip, Olha o WhatsApp aparecendo como ativo ae!
Return
}
Portanto, se você quiser, pode escrever código no bloco que roda somente quando o chrome está ativo (o do aviso "Olha o chrome ae!"), e o código que estiver lá só vai rodar quando o chrome estiver ativo. Também pode escrever código que só roda quando o chrome NÃO está ativo. Da mesma forma, pode também escrever código que só roda quando o WhatsApp está ativo (criando outro bloco IfWinActive) e assim sucessivamente por qualquer lógica de programação que precisar.
cimerio7
Posts: 11
Joined: 30 May 2019, 12:06

Re: rodar o script dentro do chrome

18 Sep 2019, 14:50

Deu certo, Gio, muito obrigado.

Return to “Ajuda e Suporte Geral”

Who is online

Users browsing this forum: No registered users and 4 guests