Fala galera, tudo certo?
Eu estou com a seguinte situação:
Tenho um script AHK executando e preciso que outro script AHK encerre o primeiro.
Tentei fazer isso através do processo mas aí acaba encerrando todos os scripts que estão rodando.
Existe alguma forma de fazer isso?
Desde já agradeço!
Encerrar AHK Script Topic is solved
Moderator: Gio
Re: Encerrar AHK Script Topic is solved
Bom dia Qhimin.
Seja bem-vindo ao fórum da comunidade do AutoHotkey.
Existem várias formas de fazer isso que você descreveu. De um modo geral, você precisa coletar o PID de cada script específico e depois fechar somente os que quiser pelos PIDs especifícios deles. Para fazer isso você pode por exemplo:
1. Usar o comando Run para abrir um novo script (existe um parâmetro que guarda o PID do programa aberto pelo comando Run)
2. Fazer cada script abrir uma janela específica (que pode estar escondida) e depois usar o comando WinGet para obter o PID através do nome das janelas alvo.
3. Compilar cada script e colocar um nome diferente (o nome do processo é o nome do executável, então quando o script for compilado, você poderá escolher o nome do processo dele) de modo a poder obter o PID através do comando Process.
etc...
Eu vou te dar um exemplo de como eu faria a rotina acontecer pela opção 2, pois pelo que entendi, você quer que um SEGUNDO script feche o primeiro (logo, ele tem que poder ser executado depois, o que impede o uso da opção 1) e também quer fazer isso com scripts em texto (e não com programas compilados).
Script 1: Coloque esta linha no início do script 1 para que ele crie uma janela oculta com o nome específico EXEMPLO_DE_JANELA_NOVA:
Script 2: No exemplo abaixo, o segundo script vai ser executado DEPOIS do primeiro, e com as linhas abaixo ele vai coletar o PID do primeiro através do nome da janela oculta e em seguida encerrará o primeiro (a rotina foi colocada na hotkey F2 para você poder controlar o momento do fechamento do primeiro script)
Execute o script 1 e DEPOIS execute o 2. Quando ambos estiverem em execução, basta apertar F2 e o script 2 irá encerrar o script 1.
Espero ter ajudado, se ainda tiver alguma dúvida sobre o tópico, basta postar abaixo.
Seja bem-vindo ao fórum da comunidade do AutoHotkey.
Existem várias formas de fazer isso que você descreveu. De um modo geral, você precisa coletar o PID de cada script específico e depois fechar somente os que quiser pelos PIDs especifícios deles. Para fazer isso você pode por exemplo:
1. Usar o comando Run para abrir um novo script (existe um parâmetro que guarda o PID do programa aberto pelo comando Run)
2. Fazer cada script abrir uma janela específica (que pode estar escondida) e depois usar o comando WinGet para obter o PID através do nome das janelas alvo.
3. Compilar cada script e colocar um nome diferente (o nome do processo é o nome do executável, então quando o script for compilado, você poderá escolher o nome do processo dele) de modo a poder obter o PID através do comando Process.
etc...
Eu vou te dar um exemplo de como eu faria a rotina acontecer pela opção 2, pois pelo que entendi, você quer que um SEGUNDO script feche o primeiro (logo, ele tem que poder ser executado depois, o que impede o uso da opção 1) e também quer fazer isso com scripts em texto (e não com programas compilados).
Script 1: Coloque esta linha no início do script 1 para que ele crie uma janela oculta com o nome específico EXEMPLO_DE_JANELA_NOVA:
Code: Select all
Gui, New, , EXEMPLO_DE_JANELA_NOVA
Script 2: No exemplo abaixo, o segundo script vai ser executado DEPOIS do primeiro, e com as linhas abaixo ele vai coletar o PID do primeiro através do nome da janela oculta e em seguida encerrará o primeiro (a rotina foi colocada na hotkey F2 para você poder controlar o momento do fechamento do primeiro script)
Code: Select all
F2::
DetectHiddenWindows, On ; Necessario para que o comando WinGet possa encontrar a janela oculta do script 1.
WinGet, PID_PRIMEIRO_SCRIPT, PID, EXEMPLO_DE_JANELA_NOVA
Process, Close, %PID_PRIMEIRO_SCRIPT%
Return
Execute o script 1 e DEPOIS execute o 2. Quando ambos estiverem em execução, basta apertar F2 e o script 2 irá encerrar o script 1.
Espero ter ajudado, se ainda tiver alguma dúvida sobre o tópico, basta postar abaixo.
"What is suitable automation? Whatever saves your day for the greater matters."
Barcoder - Create QR Codes and other Barcodes using only Autohotkey !!
Archmage Gray - A fantasy shooter game fully coded in AutoHotkey
Barcoder - Create QR Codes and other Barcodes using only Autohotkey !!
Archmage Gray - A fantasy shooter game fully coded in AutoHotkey