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
Quizá esto te valga, sólo tienes que cambiar los nombres de los ejecutables:
[code]#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[/code]