Evitar que o Alt + Tab mude para janelas minimizadas

5

Eu olhei várias soluções para isso, mas nenhuma funcionou.

Como posso evitar que a Alt + Tab no Windows 10 mude para janelas minimizadas?

    
por kofifus 22.10.2017 / 02:37

4 respostas

3

A solução é usar Alt + Esc

Mudará para a próxima janela aberta, ignorando as minimizadas. Mais importante, funciona mesmo se o Windows Shell desliga e Alt + Tab pára de funcionar

Unfortunately, with all this excitement attached to Alt+Tab, another hotkey has been woefully neglected. Windows 2.0 introduced the Alt+Esc hotkey. Whereas Alt+Tab lets you pick an application, Alt+Esc lets you cycle through them.

When you press Alt+Esc, the active window is sent to the bottom of the window stack, allowing the window beneath it in the z-order to become the new active window. And if the next window is a minimized window, it stays minimized. While this may sound like an annoyance, it is actually a useful device, as it lets you skip past minimized applications without having to open them.

Raymond Chen Discusses the Alt+Tab and Alt+Esc Hotkeys

    
por 22.10.2017 / 04:02
2

Eu concordo com o que o @LưuVĩnhPhúc sugeriu, e eu fui em frente e escrevi um pequeno script AutoHotkey que faz mais ou menos isso.

O script

forward := true
cycling := false

~Alt Up::
if cycling
    forward := !forward
cycling := false
return

!Tab::Cycle(forward)
!+Tab::Cycle(!forward)

Cycle(direction)
{
    global cycling
    if direction
    {
        send !{Escape}
    }
    else
    {
        send !+{Escape}
    }
    cycling := true
}

!Escape::!Tab

Instale o programa, coloque-o em um arquivo .ahk em algum lugar e execute-o. Ele irá definir Alt + Tab para usar Alt + Escape e Alt + < kbd> Shift + Escape alternadamente, para que você possa alternar. A última linha faz com que o Alt + Escape funcione como o Alt + Tab , se você quiser ainda ter acesso a essa funcionalidade. Você pode removê-lo se quiser.

Advertências

  1. Este script muda Alt + Tab para ser Alt + Escape ou Alt + Shift + Escape , mudando de direção sempre que você soltar a tecla Alt depois de ter comutado o windows (ie também pressionado Tab ) pelo menos uma vez.

    Isto não muda o mecanismo por trás do Alt + Escape , então se você segurar Alt e pressionar Tab duas vezes, você pode não chegar à segunda antes da última janela em que estava. Além disso, quando a direção é "invertida", você pode obter janelas "mais antigas" (janelas que você não usa há algum tempo) antes de obter as mais recentes , com exceção da última janela para a qual você mudou; você conseguirá aquele (essa é a razão pela qual eu fiz aquele flip em direção a princípio).

  2. Ctrl + Alt A aba ainda mantém sua função original - isto é, usa o Alt + Tab . Não faço ideia do que você quer fazer sobre isso.

Alternativa Mais Complicada

Outra opção é escrever um programa que possa esconder todas as janelas atualmente minimizadas e restaurá-las, então use AutoHotkey para fazer Alt + Tab ativar esse programa para esconder todos as janelas minimizadas antes de deixar o Alt + Tab passar, e depois mostrá-las novamente quando você liberar Alt depois de ter comutado as janelas (não é necessário para fazer isso se você pressionar Alt por outros motivos).

Isso requer mais trabalho, no entanto, e isso fará com que seus aplicativos abertos na barra de tarefas mudem enquanto você alterna as janelas e reverte quando parar, o que pode parecer estranho.

Se você optar por fazer isso, sugiro que tome nota para não chamar o programa simplesmente na Alt + Guia , mas somente na primeira vez que pressionar essa combinação desde que você tenha pressionado Alt .

    
por 23.10.2017 / 21:31
2

O script a seguir para o AutoHotkey v1.1 corrige esse problema detectando quando qualquer janela é minimizada e forçando-a para o final da lista de guias alt alterando temporariamente os estilos de janela. O script é executado em segundo plano e não requer o uso de uma tecla de atalho específica (ou de qualquer tecla de atalho).

; Use a shell hook to detect minimize and fix the alt-tab order.
OnMessage(DllCall("RegisterWindowMessage", "str", "SHELLHOOK"), "ShellHook")
DllCall("RegisterShellHookWindow", "ptr", A_ScriptHwnd)

ShellHook(wParam, lParam)
{
    if (wParam != 0x5) ; HSHELL_GETMINRECT
        return
    hwnd := NumGet(lParam+0)
    WinGet minmax, MinMax, ahk_id %hwnd%
    if (minmax = -1) ; Minimized
    {
        ; Remove the window from the alt-tab list temporarily to force
        ; it to the end of the list.  To do this, temporarily apply the
        ; WS_EX_TOOLWINDOW style and remove WS_EX_APPWINDOW (if present).
        WinGet oldxs, ExStyle, ahk_id %hwnd%
        newxs := (oldxs & ~0x40000) | 0x80
        if (newxs != oldxs)
        {
            WinSet ExStyle, % newxs, ahk_id %hwnd%
            WinSet ExStyle, % oldxs, ahk_id %hwnd%
        }
    }
}

Ressalva: Isso pode ter efeitos adversos em algumas janelas, já que modifica o atributo de estilo estendido da janela (temporariamente). Eu não observei nenhum problema durante meus testes.

Descobri que remover temporariamente a janela do alt-tab moveu quase para o final da lista. Se eu minimizar várias janelas seguidas, a primeira aparecerá por último, com cada janela subseqüente minimizada inserida antes das outras (mas depois de todas as outras janelas).

Eu testei no Windows 10 v1709. Os resultados podem variar em outros sistemas.

    
por 10.12.2017 / 01:11
1

Eu uso um segundo "Virtual Desktop" para esse tipo de coisa, funciona muito bem.
Você pode mover os aplicativos / janelas para a área de trabalho secundária / terciária / ... e essa área de trabalho só terá esse subconjunto de guias (eu uso alt-tab constantemente, então estou bem encaixado em seu "problema"). br> Arrastar e soltar funciona para mover os aplicativos rapidamente, e há outros atalhos e gerenciadores, se você quiser ter mais áreas de trabalho virtuais semipermanentes para determinadas tarefas.

    
por 22.10.2017 / 03:06