Minimizar una aplicación con una sola tecla y luego restaurar

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

Moderator: Flipeador

Wazowski
Posts: 72
Joined: 16 Jun 2015, 21:04

Minimizar una aplicación con una sola tecla y luego restaurar

22 Mar 2021, 16:07

Hola a ver sí me puedes ayudar con algo sencillo

Quiero qué con darle una tecla de mi elección se minimice y luego con la misma combinación de tecla se vuelva a poner en la posición que estaba en este caso estamos hablando de una aplicaciones de reproducción de vídeo. ejemplo real: Potplayer

He estado probando esto:

Code: Select all

^b::
  WinMinimizeAll
  WinRestore ahk_exe PotPlayerMini64.exe
Return
Pero no me funciona como quiero.
CyberCultura

Re: Minimizar una aplicación con una sola tecla y luego restaurar

26 Mar 2021, 09:18

Code: Select all

/*
Este script no detecta si el programa está maximizado o minimizado, simplemente alterna entre un estado u otro, por lo que si está minimizado cuando presiones Ctrl+b por primera vez, puede que no pase nada… 
Si no te funciona puede ser porque PotPlayerMini64.exe no sea el nombre correcto, a veces el nombre del proceso y el nombre del ejecutable no son el mismo…   

O, por lo siguiente ---> LA DOCUMENTACIÓN DE AHK DICE QUE:

Si un tipo determinado de ventana no responde correctamente a WinMinimize, intente utilizar lo siguiente en su lugar:
    PostMessage, 0x0112, 0xF020,,, WinTitle, WinText ; 0x0112 = WM_SYSCOMMAND, 0xF020 = SC_MINIMIZE

Si un tipo determinado de ventana no responde correctamente a WinMaximize, intente utilizar lo siguiente en su lugar:
    PostMessage, 0x0112, 0xF030,,, WinTitle, WinText ; 0x0112 = WM_SYSCOMMAND, 0xF030 = SC_MAXIMIZE

>>>>>>>>>En tu caso:
    PostMessage, 0x0112, 0xF020,,, ahk_exe PotPlayerMini64.exe ; 0x0112 = WM_SYSCOMMAND, 0xF020 = SC_MINIMIZE

    PostMessage, 0x0112, 0xF030,,, ahk_exe PotPlayerMini64.exe ; 0x0112 = WM_SYSCOMMAND, 0xF030 = SC_MAXIMIZE

    Si esto te ayuda de alguna manera, te pido por favor en retribución que te suscribas a mi canal de Youtube. De momento no tiene nada de contenido, sin embargo, en un futuro haré algunos tutoriales a ver cómo me va…  Espero haber ayudado…

*/

^b::
    If WinExist("ahk_exe PotPlayerMini64.exe")
    {
        Toggle := !Toggle
        If(Toggle){
            WinActivate, ahk_exe PotPlayerMini64.exe ;Por si no está en primer plano… Puede que no se requiera esta línea.
            WinMinimize, ahk_exe PotPlayerMini64.exe
        }
        Else{
            WinActivate, ahk_exe PotPlayerMini64.exe ;Por si no está en primer plano… Puede que no se requiera esta línea.
            WinMaximize, ahk_exe PotPlayerMini64.exe
            ;WinRestore, ahk_exe PotPlayerMini64.exe ;Puedes probar solo con esta línea a ver qué pasa.
        }
    }
    Else{
        Run, %A_ProgramFiles%\PotPlayer\PotPlayerMini64.exe ;Esto ejecuta el programa si aún no lo has abierto. Si no funciona verifica la ruta.
        ;Run, C:\Program Files\PotPlayer\PotPlayerMini64.exe ;Estas rutas me las inventé… si pones la correcta debe funcionar.
    }
Return

^y::
    ;Saludos…
    Run, http www.youtube.com /subscription_center?add_user=CyberCultura1  Broken Link for safety
Return
CyberCultura

Re: Minimizar una aplicación con una sola tecla y luego restaurar

26 Mar 2021, 10:52

Code: Select all

/*
Otra forma de hacer lo mismo, solo que con Microsoft Edge. Este script si lo probé, 
es 100% funcional y en este caso si detecta el estado de la ventana: 

WinGet, ActiveID, MinMax ---> En teoría detecta si una venta está maximizado o minimizada 
y la variable de salida, en mi caso ActiveID almacena:
-1: Si la ventana está minimizada
1: Si la ventana está maximizada
0: Si la ventana no está minimizada ni maximizada
“”: o se deja en blanco si no existe la ventana.

Sin embargo, como se puede observar para MS Edge los valores de salida están al revés 
y he notado que varía de programa en programa e incluso en ocasiones siempre da 0… Les 
recomiendo hagan siempre un test a su variable de salida para WinGet. 
Algún gurú de AHK que nos aclare si es un bug o si es el comportamiento normal de la 
instrucción WinGet.

Mi canal de YouTube: CyberCultura1
Por si me quieren apoyar, aunque no tenga contenido… Saludos
*/

^e::
    WinGet, ActiveID, MinMax, ahk_class Chrome_WidgetWin_1 ahk_exe msedge.exe
    Switch ActiveID 
    {
    Case 1:
        WinMinimize, ahk_class Chrome_WidgetWin_1 ahk_exe msedge.exe
    Case -1:
        WinActivate, ahk_class Chrome_WidgetWin_1 ahk_exe msedge.exe
        PostMessage, 0x0112, 0xF120,,, Chrome_WidgetWin_1 ahk_exe msedge.exe
    case 0:
        Default: Process, Close, msedge.exe
        Process, WaitClose, msedge.exed 
    } 
    IfWinNotExist, ahk_exe msedge.exe
    {
        Run, %A_ProgramFiles%%A_Space%(x86)\Microsoft\Edge\Application\msedge.exe
    }
Return
CyberCultura

Re: Minimizar una aplicación con una sola tecla y luego restaurar

26 Mar 2021, 11:09

P.D.:

La instrucción Switch se introdujo en la versión de AutoHotkey 1.1.31.00 – de Septiembre 28 de 2019.
Así que si instalaste AHK antes de esa fecha y aun no lo has actualizado el script anterior no te funcionará.

Return to “Pedir Ayuda”

Who is online

Users browsing this forum: No registered users and 51 guests