Czy w systemie Windows 7 jest skrót do przełączania się między oknami tylko w danej aplikacji? Bardzo podoba mi się ta funkcja w OS X; jaki jest jego odpowiednik w systemie Windows?
Czy w systemie Windows 7 jest skrót do przełączania się między oknami tylko w danej aplikacji? Bardzo podoba mi się ta funkcja w OS X; jaki jest jego odpowiednik w systemie Windows?
Odpowiedzi:
Jeśli jest to jedna z pierwszych dziesięciu aplikacji na pasku zadań, wówczas (Win)+ n, gdzie n jest numerem pozycji, wybierze ją i przejdzie przez okna. (Użyj 0(zero) dla dziesiątej aplikacji.) Na przykład mam Eksploratora Windows i Internet Explorera przypięte jako dwie pierwsze rzeczy na pasku zadań, więc mogę używać +, 1aby przełączać się między katalogami i +, 2aby przeglądać przeglądarki.
Kilka dziwnych notatek:
Jeśli naciśniesz i przytrzymasz oraz wpiszesz (i zwolnisz) cyfrę n, Windows otworzy n- tą aplikację na pasku zadań. Kilkukrotne stukanie n powoduje przełączanie się między oknami tego programu, jak omówiono powyżej. Jak stwierdził TranslucentCloud , jeśli następnie wpiszesz Shift+ n, będzie on przechodził przez nie w kolejności odwrotnej, jak w przypadku Alt+ Tab i Ctrl+ Tabitd.
Jeśli n- ta aplikacja na pasku zadań jest przypięta, ale nie działa, + nją uruchomi.
W Windows 7 i 8, chociaż nie znam dostępnego skrótu z samej klawiatury, możesz przytrzymać Ctrl, klikając ikonę paska zadań aplikacji, którą jesteś zainteresowany. Za każdym razem, gdy to zrobisz, pojawi się inne okno należące do tej aplikacji wyjść na pierwszy plan.
Ponadto program VistaSwitcher konfiguruje Win+ F11i Alt+ `do przełączania między oknami bieżącej aplikacji. (BTW, jej strona internetowa mówi, że Windows 8 nie jest obsługiwany, ale miałem szczęście z nim w wersji 8.1; jedynym problemem, jaki do tej pory widziałem, jest to, że czasami wyświetla takie listy, jak pasek boczny wyszukiwania jako otwarte okna. Po prostu ignoruję to, ale YMMV.)
alt-tab terminator
nie ma już opcji zakładki między tą samą aplikacją
Możesz użyć AutoHotkey: www.autohotkey.com
I umieść tam ten skrypt:
!`:: ; 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
Działa dla mnie bardzo dobrze. Korzystając z Autohotkey, wykonałem także moje klucze kopiuj / wklej / cofnij ... klucze jak Mac. Działa świetnie!
Ery
WinGet, List
zwraca liczbę okien w List
zmiennej (w przeciwieństwie do List%n%
pseudoobrazu, w którym przechowywane są uchwyty), dzięki czemu można pominąć WinGet, WinClassCount
połączenie i List
zamiast tego sprawdzić . Ponadto kod wydaje się być identyczny dla obu klawiszy skrótu.
Dzięki, Erasmose, ale twoja wersja skryptu autohotkey zminimalizuje okno, jeśli nie ma innych okien tego typu. Czasami nie wiesz, a minimalizacja jest denerwującym sposobem na sprawdzenie, więc zmodyfikowałem twój skrypt w następujący sposób:
!`:: ; 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
och, a także zmieniłem ostatnią klasę, aby używać shift zamiast ctrl, ponieważ jestem modyfikatorem, aby przejść wstecz z kilkoma innymi skrótami klawiaturowymi. Uwielbiam auto-klucz.
Niektóre aplikacje, które implementują MDI, zapewniają klawisze Ctrl + Tab do przełączania „Dokumentów” w tej samej instancji aplikacji. np. MS Office. Ale to nie jest funkcja systemu Windows i zależy od aplikacji. W przypadku innego oprogramowania istnieją różne skróty. np. Firefox nie zapewnia tej funkcji, ale istnieje dodatek, który dodaje tę funkcjonalność.
Ponadto znajduje się lista skrótów klawiaturowych dostępnych w systemie Windows.
Ponadto, istnieje istniejące dyskusje na temat skrótów klawiaturowych w systemie Windows.
Mam nadzieję, że to pomaga.
Easy Windows Switcher od Neosmart robi dokładnie to, czego szukasz.
Oto opis z witryny Easy Windows Switcher
Easy Window Switcher sprawia, że przełączanie między różnymi oknami jest tak proste, jak alt+` (jak Alt + Backtick), jak na komputerze Mac. Zapomnij o
alt+tab
milionie i jednym otwartym oknie, aby znaleźć to, czego szukasz, dzięki Easy Window Switcher, tabulacja między oknami tego samego programu jest tylko alt+`daleka.
VistaSwitcher pozwala lub dla tej funkcji. Jest kompatybilny z Windows 10 (choć nazwa sugeruje inaczej). W systemie Windows 8 i nowszych sugeruję dodanie niektórych aplikacji metra do listy wykluczeń.
Najlepsza odpowiedź jest dobra, ale nie działa w konfiguracjach z wieloma monitorami, w których pasek zadań jest ustawiony tak, aby wyświetlać tylko ikony na aktywnym monitorze.
Oprócz tego, co Scott ( https://superuser.com/users/150988/scott ) udostępnił:
ctrl+ repeatedly click nad ikoną aplikacji na pasku zadań również wykona zadanie.
Z AutoHotkey również bardziej naturalne zachowanie:
; 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
Utworzyłem skrypt AutoHotkey, aby przełączać się między oknami tej samej aplikacji, które działają ze zwykłymi aplikacjami Windows , skrótami Chrome i aplikacjami Chrome .
W tym repozytorium Github znajduje się inny skrypt AutoHotkey, który może działać dobrze w tym tandemie, ponieważ będziesz mógł otwierać, przywracać lub minimalizować swoje aplikacje za pomocą skrótów klawiszowych, które chcesz.
Przykład:
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/")
Stworzyłem skrypt AutoHotkey, który ładnie integruje się z przełącznikiem zadań systemu Windows ( Alt+ Tab), zapewniając wszystkie jego zalety: podgląd okien aplikacji, kliknij, aby wybrać, nawigację za pomocą klawiszy strzałek, aktywuj tylko jedno okno, które chcesz. Wywołaj / nawiguj za pomocą Alt+ `i Alt+ Shift+ `(backtick), aby przełączać się między oknami mającymi taką samą nazwę procesu jak bieżące okno. Uważam, że jest to bardziej użyteczne niż Win+, numponieważ działa w każdej aplikacji (zamiast zapamiętywać przypięty numer gniazda), podglądy okien są większe, tło nie jest rozmyte i płynnie miesza się z Alt+ Tabnawigacją. Testowane w systemie Windows 10.
Główną sztuczką jest tymczasowe ukrywanie okien aplikacji innych niż docelowe w przełączniku zadań przez ustawienie WS_EX_TOOLWINDOW
i rozbrojenie WS_EX_APPWINDOW
. Aby ustawić te style okien w systemie Windows działającym jako administrator, AutoHotkey musi zostać podpisany lub uruchomiony jako administrator . Postępowałem zgodnie z bardzo łatwymi instrukcjami podpisywania tutaj .
Niektóre powiązane wątki, które przyczyniły się:
!`::
{
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_
}
Korzystając z Autohotkey, oto moja wersja, która działa z aplikacjami Chrome i Electron. Został zmodyfikowany z odpowiedzi @ user332861 , aby poprawnie rozróżniał aplikacje Chrome i Electron, takie jak Slack i Visual Studio Code. (Aby to zrobić, używa ahk_exe
zamiast 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
Uproszczone z odpowiedzi @ otter.pro. To po prostu przełącza wstecz w bieżących oknach aplikacji. Jazda na rowerze do przodu może powodować pojawienie się krótkich błysków innych okien. Ponieważ niewidoczne błyski są prawdopodobnie ważniejsze niż dwukierunkowe przełączanie, po prostu nie jeździć do przodu. Co więcej, ta odpowiedź umożliwia # `jako alternatywę dla!`, Ponieważ jest to kombinacja klawiszy dla skrótu Mac.