1

Я хочу, чтобы за один раз было развернуто только одно окно. Когда я переключаюсь на другое окно, предыдущее (или любое другое) окно должно быть свернуто. У Mac он есть, и он называется режимом одного приложения.

Используя Win + Home, я могу свернуть другие окна, но их нужно нажимать каждый раз. Как я могу сделать это автоматически в Windows?

3 ответа3

1

Оригинал доступен в виде скрипта (AHK - AutoHotKey) или исполняемого файла:

http://www.donationcoder.com/Software/Skrommel/index.html#MinimOther

MinimOther v1.1 от Skrommel

Size: 205KB

Endlessly minimizes all windows except the active one.

Features:

    ► Won't minimize dialog boxes.

Changes:

    ► 2005.12.02 - v1.1: Restores next window when current window closes.

Спасибо knyghte на форуме DonationCoder за идею!

1

Есть несколько способов.

Для этого требуется программное обеспечение или скрипт.

У меня есть опыт работы с Actual Tools Window Minimizer, который имеет функцию автоматического свертывания любого окна при деактивации, с добавлением исключений и другими функциями.

Если вы используете Windows 10 с одним монитором, вы можете использовать режим планшета, который автоматически устанавливает любую программу на полный экран. Это не минимизирует другие программы, но все равно будет ощущаться так же. Вам нужно годовое обновление для этого, хотя. Нажмите значок уведомления справа от часов и нажмите Режим планшета. Если он неактивен, убедитесь, что несколько мониторов отключены. Либо установите его на один из мониторов, либо дублируйте. Не будет работать с Extended.

1

В Autohotkey вы можете использовать SetTimer, чтобы максимизировать фактическое активное окно при минимизации любого другого окна:

#NoEnv
#SingleInstance Force

; Press F1 to enable/disable single window mode:

F1::   ; toggles the variable "enabled" between true and false
enabled := !enabled
If (enabled)
     SetTimer, single_window_mode, 10
else
     SetTimer, single_window_mode, off   ; disable single window mode
return

     single_window_mode:
If IsWindow(WinExist("A"))
{   
    WinGet, WinState_A, MinMax, A
    If (WinState_A != 1) ; the active window isn't maximized 
    {
        WinMaximize, A
        WinGet, id, list
        Loop, %id%
        {
            this_ID := id%A_Index%
            If NOT IsWindow(WinExist("ahk_id" . this_ID))
                continue
            IfWinActive, ahk_id %this_ID%
                continue
            WinGet, WinState, MinMax, ahk_id %this_ID%
            If (WinState != -1) ; the window isn't minimized
            {
                WinRestore, ahk_id %this_ID%
                Sleep 300
                WinMinimize, ahk_id %this_ID%               
            }
        }
    }
}
return

; This checks if a window is, in fact a window.
; As opposed to the desktop or a menu, etc.
IsWindow(hwnd){
   WinGet, s, Style, ahk_id %hwnd%
   return s & 0xC00000 ? (s & 0x100 ? 0 : 1) : 0
}

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