2

Нажатие ALT+TAB очень помогает в навигации между открытыми окнами на рабочем столе моего компьютера с Windows 8.1.

ПРИМЕЧАНИЕ 1. Появляющееся меню дает возможность не только перемещаться между открытыми окнами рабочего стола, но и сворачиваться в окна панели задач.

  • Эффективно, ALT+TAB дает возможность "переключаться" между ВСЕМИ открытыми приложениями, которые, конечно же, отображаются в окне.
  • Сейчас я не очень разбираюсь в программировании. Тем не менее, у меня обычно много открытых окон, и я хотел бы быстро перемещаться между ними.
  • Я обнаружил, что ALT+ESC действительно лучше справляется со своими задачами, так как это быстрее, т.е.
  • Мне не нужно нажимать дополнительную кнопку, чтобы попасть в интересующее меня окно, как и в случае с ALT+TAB.
  • И это было бы ВСЕМ, и я был бы счастливым пользователем Windows, но, ALT+ESC не проходит через свернутые окна панели задач.
  • На самом деле он просматривает их, но не отображает предварительный просмотр, как ALT+TAB.
  • На самом деле с ALT+ESC я больше похож на поиск не предварительного просмотра, а реального окна.
  • У меня установлен AutoHotKey. Любые предложения для сценария, который развивает функциональность ALT+ESC ? Или это невозможно?

ПРИМЕЧАНИЕ 2: ALT+SHIFT+ESC "циклически" переворачивает "открытые" окна назад.

ПРИМЕЧАНИЕ 3: Я также установил элемент управления X Mouse Mouse и назначил ALT+ESC и ALT+SHIFT+ESC кнопкам 4 и 5 моей мыши, эффективно прокручивая "открытые" окна приложения, нажимая кнопки на моей мыши. Если бы только это было немного лучше ...

2 ответа2

1

Попробуй это:

#NoEnv
#SingleInstance Force

; equivalent to ALT+TAB    (ALT+ESC cannot activate minimized windows)

F1::
List =
WinGet, AllWinsHwnd, List
Loop, % AllWinsHwnd
{
WinGet, exStyle, exStyle, % "ahk_id" AllWinsHwnd%A_Index%
If !(exStyle & 0x100)
  Continue
WinGetTitle, CurrentWinTitle, % "ahk_id " AllWinsHwnd%A_Index%
WinGetTitle, active_title, A
If CurrentWinTitle = %active_title%
  continue
WinActivate, %CurrentWinTitle%
GoSub, MouseCenterInWindow
  break
}
return

; SHIFT+ALT+TAB menu

F2::
List =
Menu, windows, Add
Menu, windows, deleteAll
WinGet, AllWinsHwnd, List
Loop, %AllWinsHwnd%
{
WinGet, exStyle, exStyle, % "ahk_id" AllWinsHwnd%A_Index%
If !(exStyle & 0x100)
  Continue
WinGetTitle, CurrentWinTitle, % "ahk_id " AllWinsHwnd%A_Index%
WinGetClass, CurrentWinClass, % "ahk_id " AllWinsHwnd%A_Index%
If CurrentWinClass = ApplicationFrameWindow
  Continue
Menu, windows, Add, %CurrentWinTitle%%A_Tab%ahk_class %CurrentWinClass%, WinTitle
WinGet, Path, ProcessPath, % "ahk_id " AllWinsHwnd%A_Index%
Menu, windows, Icon, %CurrentWinTitle%%A_Tab%ahk_class %CurrentWinClass%, %Path%
}
Menu, windows, Show
return


WinTitle:
WinActivate, %A_ThisMenuItem%
GoSub, MouseCenterInWindow
return


MouseCenterInWindow:
CoordMode, Mouse, Relative
WinGetPos,,,Xmax,Ymax,A ; get active window size
Xcenter := Xmax/2        ; Calculate center of active window
Ycenter := Ymax/2
MouseMove, Xcenter, Ycenter
return
1

ОК, ребята, я нашел решение ..................

Где-то после долгих поисков ........

    XButton1::
    Send, {AltDown}{Esc}{AltUp}
    Sleep, 0
    WinActivate, A
    Return

    XButton2::
    Send, {AltDown}{ShiftDown}{Esc}{ShiftUp}{AltUp}
    Sleep, 0
    WinActivate, A
    Return

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .