web-dev-qa-db-fra.com

Empêcher l'onglet ALT + de passer à des fenêtres minimisées

J'ai examiné diverses solutions à ce sujet mais aucune n'a travaillé.

Comment puis-je empêcher Alt+Tab Sous Windows 10 de passer à des fenêtres minimisées?

6
kofifus

La solution est d'utiliser Alt+Esc

Il va passer à la fenêtre Ouvrir la prochaine, sautez les minimisées. Plus important encore, cela fonctionne même si le shell de Windows raccroche et Alt+Tab cesse de travailler

Malheureusement, avec toute cette excitation attachée à Alt+Tab, une autre raccourci a été négligée. Windows 2.0 a introduit le Alt+Esc Hotkey. Tandis que Alt+Tab vous permet de choisir une application, Alt+Esc vous permet de les parcourir.

Quand vous appuyez sur Alt+Esc, la fenêtre active est envoyée au bas de la pile de la fenêtre, permettant la fenêtre située sous la fenêtre dans l'ordre Z de devenir la nouvelle fenêtre active. Et si la fenêtre suivante est une fenêtre minimisée, elle reste minimisée. Bien que cela puisse ressembler à une gêne, c'est en fait un appareil utile, car il vous permet de passer au-delà des applications minimisées sans avoir à les ouvrir.

Raymond Chen discute de la Alt+Tab et Alt+Esc Hotkeys

6
phuclv

Le script suivant pour Autohotkey V1.1 corrige ce problème en détectant une fois une fenêtre minimisée et la forçant vers la fin de la liste Alt-Tab en modifiant temporairement les styles de fenêtre. Le script fonctionne en arrière-plan et ne nécessite pas d'utiliser une touche de raccourci spécifique (ou une touche de raccourci automatique).

; 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%
        }
    }
}

CAVEAT: Cela peut avoir des effets indésirables sur certaines fenêtres puisqu'il modifie l'attribut de style étendu de la fenêtre (temporairement). Je n'ai observi aucun problème lors de mes tests.

J'ai trouvé que retirer temporairement la fenêtre de Alt-Tab déplaçait-la presque à la fin de la liste. Si je minimise de plusieurs fenêtres d'une ligne, le premier apparaît en dernier, avec chaque fenêtre minimisée ultérieure insérée avant les autres (mais après toutes les autres fenêtres).

J'ai testé sur Windows 10 V1709. Les résultats peuvent varier sur d'autres systèmes.

4
Lexikos

Je suis d'accord avec ce que @ Lưuvĩnhphúc a suggéré et je suis allé de l'avant et j'ai écrit un script court authotkey qui fait plus ou moins que.

Le 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

Installez le programme, mettez ceci dans un .ahk Dossier quelque part et exécutez-le. Il va définir Alt+Tab utiliser Alt+Escape et Alt+Shift+Escape en alternance afin que vous puissiez vous retourner. La dernière ligne le fait pour que Alt+Escape fonctionne comme le régulier Alt+Tab, au cas où vous voudriez toujours avoir accès à cette fonctionnalité. Vous pouvez le supprimer si vous voulez.

Réserve

  1. Ce script change Alt+Tab être soit soit Alt+Escape ou Alt+Shift+Escape, changer sa direction chaque fois que vous libérez le Alt clé après avoir changé de fenêtres (c'est-à-dire aussi enfoncé Tab) au moins une fois.

    Cela ne change pas le mécanisme derrière Alt+Escape, donc si vous tenez Alt et appuyer sur Tab deux fois, vous ne pouvez pas accéder à la deuxième fenêtre avant-la dernière fois que vous étiez. Aussi, lorsque la direction est "inversée", vous pouvez obtenir des fenêtres "plus anciennes" (Windows que vous n'avez pas utilisé depuis un moment) avant de recevoir des personnes récentes, À l'exception de la dernière fenêtre, vous avez changé; Vous obtiendrez celui-là (c'est la raison entière que j'ai faite cela basculement en direction de la première place).

  2. Ctrl+Alt+Tab conserve toujours sa fonction d'origine - c'est-à-dire qu'il utilise le régulier Alt+Tab mécanisme. Aucune idée de ce que vous voulez faire à ce sujet.

Alternative plus compliquée

Une autre option consiste à écrire un programme capable de masquer toutes les fenêtres actuellement minimisées et de les restaurer, puis utilisez Autohotkey pour faire Alt+Tab Activez ce programme pour masquer toutes les fenêtres minimisées avant de laisser le Alt+Tab à travers, puis demandez-le de les montrer à nouveau lorsque vous relâchez Alt après avoir commuté des fenêtres (pas besoin de le faire si vous appuyez sur Alt pour d'autres raisons).

Cela nécessite toutefois plus de travail, cependant, et cela entraînera vos applications ouvertes dans la barre des tâches qui change lorsque vous changez de fenêtres et que vous revenez lorsque vous vous arrêtez, ce qui peut sembler étrange.

Si vous choisissez de le faire, je vous suggère de prendre notification de ne pas invoquer le programme simplement sur Alt+Tab, mais seulement dans la première fois que vous appuyez sur cette combinaison depuis que vous avez tenu en panne Alt.

2
Tomer Godinger

J'utilise un deuxième "bureau virtuel" pour ce type de choses, cela fonctionne vraiment bien.
[.____] Vous pouvez déplacer les applications/fenêtres sur le bureau secondaire/tertiaire/... de bureau et que ce bureau n'aura que ce sous-ensemble d'onglets (j'utilise Alt+Tab constamment, donc je suis assez clément dans votre "problème").

Drag-Drop travaille pour déplacer les applications rapidement et il existe d'autres raccourcis et gestionnaires, si vous souhaitez avoir plus de bureaux virtuels semi-permanents pour une ou plusieurs tâches.

1
PeteG