ABC: Cerrar una aplicación sin ventana (únicamente ToolbarICON)

Consejos y trucos de programación en AutoHotkey

Moderator: Flipeador

Dsalomon
Posts: 22
Joined: 02 Mar 2021, 23:01

ABC: Cerrar una aplicación sin ventana (únicamente ToolbarICON)

Post by Dsalomon » 06 Mar 2021, 02:36

Buena noche, ayer dude de publicar ayuda para este tópico, pero me quede un poco necio y encontré una forma algo prueba y error y al fin halle la solución, aunque podría mejorarse; dejo mi pequeña experiencia por si le sirve a alguien.

Bueno el caso es que utilizo una herramienta de captura de la pantalla de mi escritorio 2, para emitir mi programación de video para mi canal de TV, que se llama NDI Screen Capture HX, hasta allí todo bien, como no tengo el canal 24 horas, debo programar que dicha aplicación se inicie desde el inicio de Windows [shell:startup], al encenderse la PC, pero todos los días por algún motivo no funcionaba, haciendo necesario reiniciar manualmente:
darle clic derecho al icono en la ToolBar de Windows y Salir, abiéndola nuevamente desde la lista de programas y allí si funcionaba normal; como entenderán esto lo podía programar con un run, que abriera la aplicación y un Kill process para forzar el cierre y después volver a llamarla con otro run.

pero oh sorpresa no me funcionaban los comandos para Process, Close, WinKill, WinClose PostMessage , WM_SYSCOMMAND o 0xF060 = SC_CLOSE, pensé que era por que al no haber una ventana estaría como ventanas ocultas, como saber a que cerrar o que apuntr en estos comandos.

vi por la noche unos tutoriales en ingles y de una cosa no pase: necesitaba saber como mensajes de Windows a cualquier ventana
despues de probar instalando varios espias de ventanas encontre esta pequeña herramienta que me dio luz a la idea: SendMessage https://github.com/stefankueng/sendmessage/releases/latest y en combinación con WM_COMMAND descrito en el manual https://www.autohotkey.com/docs/misc/SendMessageList.htm pude enviar mensajes a ese programa sin ventana que me atormento por varias semanas

Dicha aplicación simple me dio lo que buscaba o mas bien me faltaba:

  • Titulo de la ventana: 0x00040B4C
  • Clase de la ventana: IME (aunque esta no la use)
  • Código PostMessage: WM_QUIT
y para evitar errores añadí un DetectHiddenWindows ON.

Code: Select all

DetectHiddenWindows, on
PostMessage, 0x0010, 0x000104B0,, ahk_exe Application.Network.ScanConverterHX.x64.exe  ; cerrar NDI Screen Capture HX  o WM_CLOSE: = 0x0010

Code: Select all

PostMessage, 0x0010,,,, ahk_exe Application.Network.ScanConverterHX.x64.exe  ; cerrar NDI Screen Capture HX  o WM_CLOSE: = 0x0010
ojala sirva a alguien..

Return to “Tutoriales”