Esiste un collegamento in Windows 7 per passare da una finestra all'altra solo in una determinata applicazione? Mi piace molto questa funzione in OS X; qual è il suo equivalente in Windows?
Esiste un collegamento in Windows 7 per passare da una finestra all'altra solo in una determinata applicazione? Mi piace molto questa funzione in OS X; qual è il suo equivalente in Windows?
Risposte:
Se è una delle prime dieci applicazioni sulla barra delle applicazioni, quindi (Win)+ n, dove n è il suo numero di posizione, lo selezionerà e scorrerà tra le finestre. (Usa 0(zero) per la decima applicazione.) Ad esempio, ho Windows Explorer e Internet Explorer bloccati come le prime due cose sulla mia barra delle applicazioni, quindi posso usare + 1per scorrere tra le mie directory e +2 per scorrere tra i miei browser.
Alcune strane note:
Se si tiene premuto e il tipo (e rilasciare) una cifra n, Windows aprirà la n ° applicazione sulla barra delle applicazioni. Toccare ripetutamente scorrerà n le finestre di quel programma, come discusso sopra. Come affermato da TranslucentCloud , se poi digiti Shift+ n, scorrerà in ordine inverso, come con Alt+ Tab e Ctrl+ Tab, ecc.
Se il n ° applicazione sulla barra delle applicazioni è bloccato, ma non è in esecuzione, quindi + ninizierà esso.
In Windows 7 e 8, sebbene non ci siano scorciatoie che conosco disponibili solo dalla tastiera, puoi tenere premuto Ctrlfacendo clic sull'icona della barra delle applicazioni dell'app che ti interessa. Ogni volta che lo fai, una finestra diversa appartenente a quell'app venire in prima linea.
Inoltre, il programma VistaSwitcher imposta Win+ F11e Alt+ `per passare tra le finestre dell'app corrente. (A proposito, il suo sito web dice che Windows 8 non è supportato, ma ho avuto fortuna con esso in 8.1; l'unico problema che ho visto finora è che a volte elenca cose come la barra laterale di ricerca come finestre aperte. Ho semplicemente ignorato quello, ma YMMV.)
alt-tab terminator
non ha più la funzione di
È possibile utilizzare AutoHotkey: www.autohotkey.com
E metti questo 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
Funziona molto bene per me. Usando Autohotkey ho anche creato i miei tasti copia / incolla / annulla, ... come Mac. Funziona alla grande!
Eras
WinGet, List
restituisce il numero di finestre nella List
variabile (al contrario dello List%n%
pseudoarray in cui sono archiviati gli handle), in modo da poter saltare la WinGet, WinClassCount
chiamata e verificare List
invece. Inoltre, il codice sembra essere identico per entrambi i tasti di scelta rapida.
Grazie, Erasmose, ma la tua versione dello script autohotkey minimizzerà una finestra se non ci sono altre finestre di quel tipo. A volte non lo sai, e minimizzare è un modo fastidioso per scoprirlo, quindi ho modificato il tuo script in questo modo:
!`:: ; 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, e ho anche cambiato l'ultima classe per usare shift invece di ctrl poiché io sono il modificatore per tornare indietro con molte altre scorciatoie da tastiera. Adoro l'autohotkey.
Alcune applicazioni che implementano MDI forniscono Ctrl + Tab per passare da "Documenti" alla stessa istanza dell'applicazione. ad es. MS Office. Ma questa non è una funzionalità di Windows e dipende dall'applicazione. Per altri software ci sono diverse scorciatoie. ad esempio Firefox non fornisce questa funzione ma è presente un componente aggiuntivo che aggiunge funzionalità.
Inoltre, ecco un elenco di scorciatoie da tastiera fornite in Windows.
Inoltre, ci sono discussioni esistenti sulle scorciatoie da tastiera in Windows.
Spero che sia d'aiuto.
Easy Windows Switcher di Neosmart fa esattamente quello che cerchi.
Ecco la descrizione dal sito Web Easy Windows Switcher
Easy Window Switcher semplifica il passaggio da una finestra all'altra alt+` (ovvero alt + backtick) come su un Mac. Dimentica di avere
alt+tab
tra un milione e uno di finestre aperte diverse per trovare quello che stai cercando, con Easy Window Switcher, la tabulazione tra le finestre dello stesso programma è solo alt+`lontana.
VistaSwitcher consente o per questa funzione. È compatibile con Windows 10 (anche se il nome suggerisce il contrario). Su Windows 8 e versioni successive, suggerisco di aggiungere alcune app metro all'elenco di esclusione.
La risposta migliore è buona, ma non funziona su configurazioni multi-monitor in cui la barra delle applicazioni è impostata per mostrare solo le icone sul monitor attivo.
Oltre a ciò che Scott ( https://superuser.com/users/150988/scott ) ha condiviso:
ctrl+ anche repeatedly click sull'icona dell'app nella barra delle attività farà il lavoro.
Anche con AutoHotkey, un comportamento più naturale:
; 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
Ho creato uno script AutoHotkey per passare tra le finestre della stessa applicazione che funzionano con le normali app di Windows , le scorciatoie di Chrome e le app di Chrome .
In quel repository Github c'è un altro script AutoHotkey che potrebbe funzionare bene in tandem con questo, perché sarai in grado di aprire, ripristinare o ridurre a icona le tue app usando i tasti di scelta rapida che desideri.
Esempio:
F7:: OpenOrShowAppBasedOnExeName("C:\Windows\System32\SnippingTool.exe")
F8:: OpenOrShowAppBasedOnWindowTitle("Gmail", "C:\Program Files (x86)\Google\Chrome\Application\chrome.exe --app=https://mail.google.com/mail/")
Ho creato uno script AutoHotkey che si integra perfettamente con il Task Switcher di Windows ( Alt+ Tab), fornendo tutti i suoi vantaggi: anteprime delle finestre delle app, fare clic per selezionare, navigazione con i tasti freccia, attivare solo la singola finestra desiderata. Richiamare / navigare con Alt+ `e Alt+ Shift+ `(backtick) per scorrere tra le finestre con lo stesso nome di processo della finestra corrente. Trovo questo più utilizzabile di Win+ numin quanto funziona per qualsiasi app (piuttosto che dover ricordare il numero di slot appuntato), le anteprime delle finestre sono più grandi, lo sfondo non si sfoca e si mescola perfettamente con Alt+ Tabnavigazione. Testato su Windows 10.
Il trucco principale è nascondere temporaneamente le finestre delle applicazioni non di destinazione dal Task Switcher impostando WS_EX_TOOLWINDOW
e disabilitando WS_EX_APPWINDOW
. Per impostare questi stili di Windows su Windows in esecuzione come amministratore, AutoHotkey deve essere firmato o eseguito come amministratore . Ho seguito le istruzioni per la firma molto facili qui .
Alcuni thread correlati che hanno contribuito:
!`::
{
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_
}
Usando Autohotkey, ecco la mia versione, che funziona con le app Chrome ed Electron. È stato modificato dalla risposta di @ user332861 , in modo da distinguere correttamente tra le app di Chrome ed Electron come Slack e Visual Studio Code. (Per fare ciò, utilizza ahk_exe
invece di ahk_class
)
!`:: ; Next window if using alt-backtick
WinGet, ExeName, ProcessName , A
WinGet, ExeCount, Count, ahk_exe %ExeName%
If ExeCount = 1
Return
Else
WinSet, Bottom,, A
WinActivate, ahk_exe %ExeName%
return
!+`:: ; prev window, Alt+shift+backtick
WinGet, ExeName, ProcessName , A
WinActivateBottom, ahk_exe %ExeName%
return
!`::
#`::
WinGet, ExeName, ProcessName, A
WinActivateBottom, ahk_exe %ExeName%
return
Semplificato dalla risposta di @ otter.pro. Questo semplicemente scorre indietro attraverso le finestre dell'applicazione corrente. Pedalare in avanti può far apparire brevi lampi di altre finestre. Dato che non vedere i flash è probabilmente più importante del ciclismo bidirezionale, semplicemente non andare avanti. Inoltre, questa risposta consente # # in alternativa a! `Poiché questa è la combinazione di tasti per il collegamento Mac.