Existe-t-il un raccourci dans Windows 7 permettant de basculer d'une fenêtre à une autre dans une application donnée? J'aime beaucoup cette fonctionnalité sous OS X; quel est son équivalent sous Windows?
S'il s'agit de l'une des neuf premières applications de la barre des tâches, alors (Gagner)+n, où n est son numéro de position, le sélectionne et parcourt les fenêtres. Par exemple, les navigateurs Windows et Internet Explorer sont les deux premiers éléments de la barre des tâches, ce qui me permet d’utiliser +1 parcourir mes répertoires et +2 faire défiler mes navigateurs.
Sous Windows 7 et 8, bien qu’il n’y ait pas de raccourci que je connaisse disponible à partir du clavier seul, vous pouvez tenir Ctrl en cliquant sur l'icône de la barre des tâches de l'application qui vous intéresse. Chaque fois que vous faites cela, une fenêtre différente appartenant à cette application apparaîtra au premier plan.
De plus, le programme VistaSwitcher configure Win + F11 et Alt + `pour basculer entre les fenêtres de l'application en cours. (En passant, son site Web indique que Windows 8 n’est pas pris en charge, mais j’ai eu de la chance avec cette version 8.1; le seul problème que j’ai vu jusqu’à présent est qu’elle répertorie parfois des éléments tels que la barre latérale de recherche comme fenêtres ouvertes. J'ignore simplement cela, mais YMMV.)
Vous pouvez utiliser AutoHotkey: www.autohotkey.com
Et mettez ce script là:
!`:: ; Next window
WinGetClass, ActiveClass, A
WinGet, WinClassCount, Count, ahk_class %ActiveClass%
IF WinClassCount = 1
Return
Else
WinGet, List, List, % "ahk_class " ActiveClass
Loop, % List
{
index := List - A_Index + 1
WinGet, State, MinMax, % "ahk_id " List%index%
if (State <> -1)
{
WinID := List%index%
break
}
}
WinActivate, % "ahk_id " WinID
return
!^`:: ; Last window
WinGetClass, ActiveClass, A
WinGet, WinClassCount, Count, ahk_class %ActiveClass%
IF WinClassCount = 1
Return
Else
WinGet, List, List, % "ahk_class " ActiveClass
Loop, % List
{
index := List - A_Index + 1
WinGet, State, MinMax, % "ahk_id " List%index%
if (State <> -1)
{
WinID := List%index%
break
}
}
WinActivate, % "ahk_id " WinID
return
Fonctionne très bien pour moi. À l’aide de Autohotkey, j’ai également créé des touches copier/coller/annuler, comme sur Mac. Fonctionne très bien!
Les ères
Merci, Erasmose, mais votre version du script autohotkey minimisera une fenêtre s'il n'y a pas d'autres fenêtres de ce type. Parfois, vous ne savez pas, et minimiser est un moyen ennuyant de le savoir, alors j'ai modifié votre script de la manière suivante:
!`:: ; Next window
WinGetClass, ActiveClass, A
WinGet, WinClassCount, Count, ahk_class %ActiveClass%
IF WinClassCount = 1
Return
Else
WinSet, Bottom,, A
WinActivate, ahk_class %ActiveClass%
return
!+`:: ; Last window
WinGetClass, ActiveClass, A
WinActivateBottom, ahk_class %ActiveClass%
return
oh, et j'ai aussi changé la dernière classe pour utiliser shift au lieu de ctrl puisque je suis le modificateur pour revenir en arrière avec plusieurs autres raccourcis clavier. J'aime autohotkey.
Certaines applications qui implémentent MDI fournissent Ctrl + Tab pour basculer entre "Documents" sous la même instance d'application. par exemple. MS Office. Mais ce n’est pas une fonctionnalité de Windows et dépend de l’application. Pour les autres logiciels, il existe différents raccourcis. par exemple. Firefox ne fournit pas cette fonctionnalité mais il existe un add-on qui ajoute cette fonctionnalité.
De plus, voici une liste de raccourcis clavier fournie dans Windows.
En outre, il existe des discussions existantes sur les raccourcis clavier dans Windows.
J'espère que cela pourra aider.
Easy Windows Switcher de Neosmart fait exactement ce que vous voulez.
Voici la description du Easy Windows Switcher Site Web
Easy Window Switcher permet de passer d'une fenêtre à l'autre aussi facilement alt+` (c'est alt + backtick) comme sur un Mac. Oubliez devoir
alt+tab
entre un million et un fenêtres différentes pour trouver celle que vous recherchez. Avec Easy Window Switcher, la tabulation entre les fenêtres du même programme n'est qu'une alt+` une façon.
VistaSwitcher permet ou pour cette fonctionnalité. Son compatible avec Windows 10, (bien que le nom suggère le contraire). Sous Windows 8 et supérieur, je suggère d'ajouter certaines applications de métro à la liste d'exclusion.
La réponse principale est bonne, mais ne fonctionne pas sur les configurations multi-écrans où la barre des tâches est configurée pour afficher uniquement les icônes sur les écrans actifs.
Avec AutoHotkey aussi, un comportement plus naturel:
; Switch between windows of the same application with Alt+(key above Tab)
; Icon: made by Freepik (www.freepik.com), licence CC 3.0 BY
; from https://www.flaticon.com/free-icon/switch-window_71630
; Script Licence: CC0 (Public Domain)
; Source: https://framagit.org/dr4Ke/AutoHotkey_scripts
KeyName := GetKeyName("sc029")
Menu, Tray, Tip, Switch between windows of the same applications with 'Alt+%KeyName%'
*!SC029::
WinGetClass, ActiveClass, A
WinGet, WinClassCount, Count, ahk_class %ActiveClass%
If WinClassCount = 1
Return
WinGet, List, List, % "ahk_class " ActiveClass
index := 0
if not GetKeyState("Shift") {
index := 1
}
;MsgBox, Entering Loop
While GetKeyState("Alt") {
If GetKeyState("Shift") {
index := Mod(List + index - 2, List) + 1
} else {
index := Mod(List + index, List) + 1
}
WinGet, State, MinMax, % "ahk_id " List%index%
if (State == -1)
{
continue
}
WinID := List%index%
WinActivate, % "ahk_id " WinID
ErrorLevel := 1
sleep 50
While (ErrorLevel != 0) and GetKeyState("Alt") {
KeyWait, sc029, DT1
}
}
return
En plus de ce que Scott ( https://superuser.com/users/150988/scott ) a partagé:
ctrl+repeatedly click sur l’icône de l’application dans la barre des tâches fera également le travail.
J'ai créé un script AutoHotkey pour basculer entre les fenêtres de la même application fonctionnant avecwindows classiques,raccourcis vers ChromeetChrome Apps.
Dans ce répertoire Github , il existe un autre script AutoHotkey qui pourrait bien fonctionner en parallèle avec celui-ci, car vous pourrez ouvrir, restaurer ou réduire au minimum vos applications à l’aide des touches de raccourci de votre choix.
Exemple:
F7 :: OpenOrShowAppBasedOnExeName ("C:\Windows\System32\SnippingTool.exe")
F8 :: OpenOrShowAppBasedOnWindowTitle ("Gmail", "C:\Fichiers de programme (x86)\Google\Chrome\Application\chrome.exe --app = https://mail.google.com/mail/ ")
J'ai créé un script AutoHotkey qui s'intègre parfaitement à Windows Task Switcher (Alt+Tab), offrant tous ses avantages: aperçus des fenêtres d’application, cliquez pour sélectionner, navigation par touches de direction, activez uniquement la fenêtre unique de votre choix. Invoquer/naviguer avec Alt+` et Alt+Shift+` (backtick) pour alterner entre les fenêtres ayant le même nom de processus que la fenêtre en cours. Je trouve cela plus utilisable que Win+num comme cela fonctionne pour n'importe quelle application (plutôt que d'avoir à mémoriser le numéro d'emplacement épinglé), les aperçus de fenêtre sont plus grands, l'arrière-plan n'est pas flou et se mélange parfaitement avec Alt+Tab la navigation. Testé sous Windows 10.
L'astuce principale consiste à masquer temporairement les fenêtres d'applications non ciblées à Task Switcher en définissant WS_EX_TOOLWINDOW
et en désactivant WS_EX_APPWINDOW
. AutoHotkey doit être signé ou exécuté en tant qu'administrateur pour définir ces styles de fenêtres sur les fenêtres exécutées en tant qu'administrateur. J'ai suivi les instructions de signature très faciles ici .
Quelques discussions connexes qui ont contribué:
!`::
{
WS_EX_TOOLWINDOW = 0x80
WS_EX_APPWINDOW = 0x40000
tw := []
aw := []
WinGet, processName, ProcessName, A
DetectHiddenWindows, Off
AltTab_window_list(1)
Loop, %AltTab_ID_List_0%
{
wid := AltTab_ID_List_%A_Index%
WinGet, processName2, ProcessName, ahk_id %wid%
if (processName2 != processName)
{
WinGet, exStyle2, ExStyle, ahk_id %wid%
if (!(exStyle2 & WS_EX_TOOLWINDOW))
{
tw.InsertAt(0, wid)
WinSet, ExStyle, ^0x80, ahk_id %wid%
}
if ((exStyle2 & WS_EX_APPWINDOW))
{
aw.InsertAt(0, wid)
WinSet, ExStyle, ^0x40000, ahk_id %wid%
}
}
}
Send {Alt Down}{Tab} ; Bring up switcher immediately
KeyWait, ``, T.25 ; Go to next window; wait .25s before looping
if (Errorlevel == 0)
{
While ( GetKeyState( "Alt","P" ) )
{
KeyWait, ``, D T.25
if (Errorlevel == 0)
{
if (GetKeyState( "Shift","P" ))
{
Send {Alt Down}{Shift Down}{Tab}
Sleep, 200
}
else
{
Send {Alt Down}{Tab}
Sleep, 200
}
}
}
}
Send {Alt Up} ; Close switcher on hotkey release
for index, wid in tw
{
WinSet, ExStyle, ^0x80, ahk_id %wid%
}
for index, wid in aw
{
WinSet, ExStyle, ^0x40000, ahk_id %wid%
}
}
return
AltTab_window_list(excludeToolWindows)
{
global
WS_EX_CONTROLPARENT =0x10000
WS_EX_APPWINDOW =0x40000
WS_EX_TOOLWINDOW =0x80
WS_DISABLED =0x8000000
WS_POPUP =0x80000000
AltTab_ID_List_ =0
WinGet, Window_List, List,,, Program Manager ; Gather a list of running programs
id_list =
Loop, %Window_List%
{
wid := Window_List%A_Index%
WinGetTitle, wid_Title, ahk_id %wid%
WinGet, Style, Style, ahk_id %wid%
If ((Style & WS_DISABLED) or ! (wid_Title)) ; skip unimportant windows
Continue
WinGet, es, ExStyle, ahk_id %wid%
Parent := Decimal_to_Hex( DllCall( "GetParent", "uint", wid ) )
WinGetClass, Win_Class, ahk_id %wid%
WinGet, Style_parent, Style, ahk_id %Parent%
If ((excludeToolWindows & (es & WS_EX_TOOLWINDOW))
or ((es & ws_ex_controlparent) and ! (Style & WS_POPUP) and !(Win_Class ="#32770") and ! (es & WS_EX_APPWINDOW)) ; pspad child window excluded
or ((Style & WS_POPUP) and (Parent) and ((Style_parent & WS_DISABLED) =0))) ; notepad find window excluded ; note - some windows result in blank value so must test for zero instead of using NOT operator!
continue
AltTab_ID_List_ ++
AltTab_ID_List_%AltTab_ID_List_% :=wid
}
AltTab_ID_List_0 := AltTab_ID_List_
}