Iniciar script al ejecutar programa y cerrar al mismo tiempo que el programa

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

Moderator: Flipeador

gael123321
Posts: 13
Joined: 29 Apr 2021, 11:49

Iniciar script al ejecutar programa y cerrar al mismo tiempo que el programa

Post by gael123321 » 03 May 2021, 20:18

Hola, alguien me podria ayudar con un script que cuando este ejecutandose un programa el script se inicie y cuando se cierre el programa tambien se cierre el script, espero me puedan ayudar, Gracias
Last edited by gregster on 03 May 2021, 20:27, edited 1 time in total.
Reason: Topic moved to 'Pedir ayuda'. Please use the english language when posting in the general forums. Thank you!

MAKERO
Posts: 1
Joined: 09 Jul 2021, 11:19

Re: Iniciar script al ejecutar programa y cerrar al mismo tiempo que el programa

Post by MAKERO » 09 Jul 2021, 11:36

Hola Gael, tengo la misma duda. Lo estoy intentando de esta forma, pero soy muy novato aún y no he podido hacer funcional el script.

Investiga if WinExist y if not WinExist (Comprueba si existe la ventana especificada.)

Lo que intento hacer es:

--si el programa se está ejecutando, abrir script #1
--Si el programa se cierra, cerrar script #1 y abrir Script#2

¿Alguien que sepa como podemos hacerlo?

Llevo tres días intentándolo y ya empiezo a frustrarme. Quiero aprender!!! :oops:

safetycar
Posts: 435
Joined: 12 Aug 2017, 04:27

Re: Iniciar script al ejecutar programa y cerrar al mismo tiempo que el programa

Post by safetycar » 10 Jul 2021, 00:28

En general, no se puede iniciar un script solamente porque otro programa se haya abierto.
El script tiene que estar ya abierto y esperando a que el otro programa se abra.
O... hacer un script que sea el acceso directo para el programa y así empieza a trabajar cuando él mismo llama al programa.

Una vez que el script y el programa estan abiertos, esperar a que se cierre podría ser algo como:

Code: Select all

#Persistent

WinWait, Nombre de la ventana
SetTimer, Supervisor, 1000 ; Temporizador cada 1s.

return

Supervisor() {
    if not WinExist("Nombre de la ventana") {
        RutaSegundoScript := "..."
        Run, % RutaSegundoScript
        ExitApp ; Cerrar este script
    }
}

Stinjere
Posts: 19
Joined: 28 Nov 2022, 02:00

Re: Iniciar script al ejecutar programa y cerrar al mismo tiempo que el programa

Post by Stinjere » 08 Dec 2022, 19:39

Puedes actualizarlo? quiero que mi Script se cierre, cuando el programa "especificado" se cierre. lamentablemente su script no me funcionó. no sé porqué pero agradecería que me ayude.

Stinjere
Posts: 19
Joined: 28 Nov 2022, 02:00

Re: Iniciar script al ejecutar programa y cerrar al mismo tiempo que el programa

Post by Stinjere » 10 Dec 2022, 23:10

@safetycar Necesito tu ayuda, por favor podrías actualizarlo? Necesito que mi Script se cierre, cuando el programa "especificado" se cierre. lamentablemente su script no me funcionó. no sé porqué pero agradecería que me ayude.

sofista
Posts: 645
Joined: 24 Feb 2020, 13:59
Location: Buenos Aires

Re: Iniciar script al ejecutar programa y cerrar al mismo tiempo que el programa

Post by sofista » 11 Dec 2022, 09:45

@Stinjere Sugiero que publiques el script tal cual lo están usando, porque como no tenemos la bola de cristal, es difícil brindarte una ayuda específica. Pueden ser varias cosas las que podrían hacerlo fallar.

Stinjere
Posts: 19
Joined: 28 Nov 2022, 02:00

Re: Iniciar script al ejecutar programa y cerrar al mismo tiempo que el programa

Post by Stinjere » 12 Dec 2022, 14:02

Te comparto mi Script: @sofista

Code: Select all

#SingleInstance Force
; Script, que cierra programas en segundo plano.
Loop
{
Process, Close, WhatsApp.exe 
Sleep 60000
}
[Mod edit: [code][/code] tags added.]

Necesito que este Script se "cierre/termine/Acabe" de manera automática, sin necesidad de presionar una tecla en especifico, solo cuando por ejemplo; el programa "Valorant.exe" se cierre o yo mismo me salga del juego. no sé como podría hacerlo. me ayudarías por favor?

sofista
Posts: 645
Joined: 24 Feb 2020, 13:59
Location: Buenos Aires

Re: Iniciar script al ejecutar programa y cerrar al mismo tiempo que el programa

Post by sofista » 12 Dec 2022, 16:01

@Stinjere Veo que también publicaste en el foro inglés y te ha respondido Rohwedder. Estás en buenas manos :)

Para adaptar el código de Rohwedder a tus necesidades, simplemente cambiá esta línea del script

Code: Select all

programa = Notepad.exe
por esta otra:

Code: Select all

programa = WhatsApp.exe
Transcurrido a lo sumo 1 segundo de cerrado el programa, se cierra el script.

Stinjere
Posts: 19
Joined: 28 Nov 2022, 02:00

Re: Iniciar script al ejecutar programa y cerrar al mismo tiempo que el programa

Post by Stinjere » 12 Dec 2022, 17:09

Eso sí sé, hacia referencia a como adaptarle mi código a su código de él. unir ambos códigos en uno solo. porque copié su código y lo pegué en el mío, y es como si no se activara, pues supongo tenemos que crear otro código incluyendo ambos códigos. es tan complicado ni se cual es el problema.

Mi código es este:

Code: Select all

#SingleInstance Force
Loop
{
Process, Close, WhatsApp.exe
Sleep 60000
}
como hago para fusionar mi código y el código de Rohwedder, para que funcionen ambos. alguna idea?

User avatar
elModo7
Posts: 217
Joined: 01 Sep 2017, 02:38
Location: Spain
Contact:

Re: Iniciar script al ejecutar programa y cerrar al mismo tiempo que el programa

Post by elModo7 » 28 Dec 2022, 04:55

Quizá esto te valga, sólo tienes que cambiar los nombres de los ejecutables:

Code: Select all

#NoEnv
#SingleInstance, Force
#Persistent
; Abre notepad, manten WhatsApp abierto, si cierras notepad, WhatsApp se cierra también
proceso_comprobar = notepad.exe
proceso_cerrar = WhatsApp.exe

; Depende el programa necesitarás poner un SetWorkingDir delante o en el propio Run
Run, %proceso_comprobar% ; Abre notepad
Run, %proceso_cerrar% ; Abre WhatsApp
WinWait, ahk_exe %proceso_comprobar%
SetTimer, comprobarProceso, 500
return

; Comprueba que notepad siga abierto
comprobarProceso:
	Process, Exist, %proceso_comprobar%
	if(!ErrorLevel)
		Gosub, Salir ; Cierra WhatsApp porque notepad está cerrado
return

Salir:
	process := proceso_cerrar
	Process, Exist, %process%
	if	pid :=	ErrorLevel
	{
		Loop
		{
			WinClose, ahk_pid %pid%, , 5
			if	ErrorLevel
			Process, Close, %pid%
			Process, Exist, %process%
		}	Until	!pid :=	ErrorLevel
	}
ExitApp

Post Reply

Return to “Pedir Ayuda”