Yalnızca belirli bir uygulamada pencereler arasında geçiş yapmak için Windows 7'de bir kısayol var mı? OS X'deki bu özelliği çok beğendim; Windows'taki karşılığı nedir?
Yalnızca belirli bir uygulamada pencereler arasında geçiş yapmak için Windows 7'de bir kısayol var mı? OS X'deki bu özelliği çok beğendim; Windows'taki karşılığı nedir?
Yanıtlar:
Görev çubuğundaki ilk on uygulamadan biriyse, n'nin konum numarası olan (Win)+ n, onu seçecek ve pencereler arasında geçiş yapacaktır. (Kullanım (sıfır) onuncu uygulaması için.) Örneğin, ben kullanabilirsiniz böylece Windows Gezgini ve Internet Explorer, benim görev çubuğunda ilk iki şey olarak tutturulmuş olması + benim dizinlere arasında geçiş yapmak ve + benim tarayıcılar arasında geçiş yapmak için.012
Bazı tuhaf notlar:
Sen ve beklemeye basarsanız ve türünü (ve salınımını) bir rakam nWindows açılacaktır n görev çubuğunda inci uygulamayı. Tekrar tekrar dokunduğunuzda n yukarıda anlatıldığı gibi programın pencereleri arasında geçiş yapılır. TranslucentCloud tarafından belirtildiği gibi , daha sonra Shift+ yazarsanız n, bunlar arasında Alt+ Tab ve Ctrl+ ile olduğu gibi ters sırayla dolaşır Tab.
Eğer n görev çubuğunda inci uygulama sabitlendi ancak çalışmıyor, daha sonra + nonu başlayacaktır.
Windows 7 ve 8'de, yalnızca klavyeden kullanabileceğim bir kısayol olmamasına rağmen, Ctrlilgilendiğiniz uygulamanın görev çubuğu simgesini tıklatırken basılı tutabilirsiniz . ön plana gel.
Ek olarak, VistaSwitcher programı mevcut uygulamanın pencereleri arasında geçiş yapmak için Win+ F11ve Alt+ ' yı ayarlar `. (BTW, web sitesi, Windows 8'in desteklenmediğini söylüyor, ancak 8.1 altında şansım oldu; şu ana kadar gördüğüm tek sorun, bazen arama kenar çubuğu gibi şeyleri açık pencereler olarak listelemesi. o, ama YMMV.)
alt-tab terminator
artık aynı uygulama arasında sekme yapma özelliğine sahip olmayan vistaswitcher'ın halefi gibi görünüyor
AutoHotkey'i kullanabilirsiniz: www.autohotkey.com
Ve bu senaryoyu buraya koy:
!`:: ; 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
Benim için çok iyi çalışıyor. Autohotkey'i kullanarak da kopyala / yapıştır / geri al, ... gibi Mac tuşları yaptım. Harika çalışıyor!
Eras
WinGet, List
pencerelerin sayısını döndürür List
( List%n%
tutamaçların saklandığı sahte dizinin tersine ), böylece WinGet, WinClassCount
aramayı atlayabilir ve List
bunun yerine kontrol edebilirsiniz . Ayrıca, kod her iki kısayol tuşu için aynı görünüyor.
Teşekkürler, Erasmose, ancak autohotkey betiği sürümünüz, o türden başka bir pencere yoksa bir pencereyi küçültecektir. Bazen bilmiyorsunuz ve küçültmek öğrenmenin can sıkıcı bir yoludur, bu yüzden komut dosyanızı şu şekilde değiştirdim:
!`:: ; 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, ve ayrıca ctrl yerine shift kullanacak son sınıfı değiştirdim, çünkü diğer birkaç klavye kısayoluyla geriye doğru giden değiştiriciyim. Ben otomatik tuşa basmayı seviyorum.
MDI uygulayan bazı uygulamalar, aynı uygulama örneği altında "Belgeler" arasında geçiş yapmak için Ctrl + Tab sağlar. örneğin, MS Office. Ancak bu bir Windows özelliği değildir ve uygulamaya bağlıdır. Diğer yazılımlar için farklı kısayollar vardır. Örneğin, Firefox bu özelliği sağlamıyor, ancak işlevselliği ekleyen bir eklenti var .
Ayrıca, işte pencerelerde sağlanan klavye kısayollarının bir listesi .
Ayrıca, Windows'ta Klavye kısayolları ile ilgili tartışmalar var.
Umarım yardımcı olur.
Neosmart'tan Easy Windows Switcher , tam olarak neyin peşinde olduğunuzu yapıyor.
İşte Easy Windows Switcher Web Sitesinin açıklaması
Easy Window Switcher, farklı pencereler arasında geçiş alt+`yapmayı Mac'teki gibi (alt + backtick) kolaylaştırır .
alt+tab
Aradığınızı bulmak için milyonlarca farklı bir açık pencere arasında olması gerektiğini unutun , Kolay Pencere Değiştirici ile, aynı programın pencereleri arasında sekme yapmak sadece bir alt+`uzağınızda.
VistaSwitcher bu özelliğe izin verir veya sağlar. Windows 10 ile uyumludur (adından başka bir şekilde önerilmesine rağmen). Windows 8 ve üzeri sürümlerde, dışlama listesine belirli metro uygulamalarını eklemenizi öneririm.
En iyi cevap iyidir, ancak görev çubuğunun yalnızca etkin monitörde simgeleri gösterecek şekilde ayarlandığı çoklu monitör kurulumlarında çalışmaz.
Scott'ın ( https://superuser.com/users/150988/scott ) paylaştığına ek olarak :
ctrl+ repeatedly click Görev çubuğundaki uygulama simgesinin üzerine de iş yapacak.
AutoHotkey ile daha doğal bir davranış:
; 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
Aynı Windows uygulaması , Chrome Kısayolları ve Chrome Uygulamaları ile çalışan pencereler arasında geçiş yapmak için bir AutoHotkey komut dosyası oluşturdum .
Bu Github deposunda , bununla iyi çalışabilecek başka bir AutoHotkey betiği var, çünkü istediğiniz kısayol tuşlarını kullanarak Uygulamalarınızı Açabilir, Geri Yükleyebilir veya Küçültebilirsiniz.
Örnek:
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/")
Tüm faydalarını sağlayan, Windows Görev Anahtarlayıcısı ( + ) ile iyi bir şekilde bütünleşen bir AutoHotkey komut dosyası oluşturdum : uygulama pencerelerinin önizlemelerini seçin, seçmek için tıklayın, ok tuşuyla gezinme, yalnızca istediğiniz tek pencereyi etkinleştirin. Çağırır / ile gezinmek + ve + + mevcut pencere ile aynı işlem adı sahip pencereler arasında geçiş yapmak için (ters tırnak). Bunu , herhangi bir uygulama için çalıştığından (sabit yuva numarasını hatırlamak yerine) + ' dan daha kullanışlı buluyorum , pencere önizlemeleri daha büyük, arka plan bulanıklaşmıyor ve + gezinti ile sorunsuz bir şekilde karışıyor . Windows 10'da test edilmiştir.AltTabAlt`AltShift`WinnumAltTab
Ana hile, hedef belirlemediğiniz uygulama pencerelerini geçici olarak Görev Değiştirici'den ayarlayarak WS_EX_TOOLWINDOW
ve ayarlayarak gizlemektir WS_EX_APPWINDOW
. Yönetici olarak çalışan pencerelerde bu pencere stillerini ayarlamak için, AutoHotkey'nin imzalanması veya yönetici olarak çalıştırılması gerekir . Buradaki kolay imzalama talimatlarını takip ettim .
Katkıda bulunan bazı ilgili başlıklar:
!`::
{
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_
}
Autohotkey kullanarak, Chrome ve Electron uygulamalarıyla çalışan sürümüm. @ User332861 adlı kişinin yanıtından değiştirildi , böylece Slack ve Visual Studio Code gibi Chrome ve Electron uygulamaları arasında doğru bir şekilde ayrım yapıyor. (Bunu yapmak için ahk_exe
yerine kullanır 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
@ Otter.pro'nun cevabından basittir. Bu sadece geçerli uygulama pencerelerinde geriye doğru geçiş yapar. İleriye gitmek, diğer pencerelerin kısa süreli yanıp sönmelerinin görünmesine neden olabilir. Flaşları görmemek muhtemelen iki yönlü bisiklet sürmekten daha önemli olduğundan, sadece ileriye doğru dönmeyin. Ayrıca, bu cevap # `a bir alternatif olarak izin verir, çünkü Mac kısayolu için anahtar kombinasyondur.