如何使用 AutoHotKey 最小化和恢复活动窗口?

问题描述 投票:0回答:3

我想要一个功能,例如当您按“Win”和“d”时您会看到桌面,如果您再次按它,它会恢复所有窗口。

如何在 AHK 中实现这一点,但只有活动窗口?

更新:

添加了以下代码,但再次按 ALT+s 仍无法恢复最小化窗口。

!s::
WinGet, active_id, ID, A
if (toggle:=!toggle)
    WinMinimize, ahk_id %active_id%
else
    WinRestore, ahk_id %active_id%
Return
autohotkey
3个回答
1
投票

Win+Down 快捷方式可以执行此操作,但功能会根据活动的特定窗口而有所不同。给定一个最大化的窗口,通常使用 Win+Down 快捷键向下两次通常可以达到您想要的效果。

因此,将

Win+Down 快捷方式替换为 2x Win+Down 如下所示:

#d:: Send #{down} Send #{down} return

或者,使用 ahk 内置的 WinMinimize 函数(这可能会更好):

#d::WinMinimize, A

更新:添加了请求的恢复功能

Toggle:=0 #d:: Toggle^=1 if(Toggle){ WinGetTitle, name, A WinMinimize, %name% } else WinRestore, %name% return

更新2: 更可靠的基于 hwnd 的版本由 0x464e MWE for hwnd 的评论提供

#d:: if (toggle:=!toggle) WinMinimize, % "ahk_id " _hwnd := WinExist("A") else WinRestore, % "ahk_id " _hwnd return
    

0
投票
我是这样做的:

#Requires AutoHotkey v2.0 #SingleInstance Force #NoTrayIcon MINIMIZED := [] STATE_MINIMIZED := -1 return ; Win + Alt + Down = Minimize Window #!Down:: { global for index, winid in MINIMIZED { if (!WinExist(winid) || WinGetMinMax(winid) != STATE_MINIMIZED) { MINIMIZED.RemoveAt(index) } } if (hwnd := WinExist("A")) { winid := "ahk_id " hwnd if (WinGetMinMax(winid) != STATE_MINIMIZED) { PostMessage 0x0112, 0xF020, 0,, winid ; 0x0112 = WM_SYSCOMMAND, 0xF020 = SC_MINIMIZE MINIMIZED.Push(winid) } } } ; Win + Alt + Up = Restore Window #!Up:: { global for index, winid in MINIMIZED { if (!WinExist(winid) || WinGetMinMax(winid) != STATE_MINIMIZED) { MINIMIZED.RemoveAt(index) } } if (MINIMIZED.Length) { winid := MINIMIZED.Pop() PostMessage 0x0112, 0xF120, 0,, winid ; 0x0112 = WM_SYSCOMMAND, 0xF120 = SC_RESTORE } }
    

0
投票
用于切换特定窗口,使用 AHK2

; example for binding ctrl+d to show/hide notepad ^d::{ ; check whether notepad already started yet if WinExist("ahk_exe notepad.exe") { ; minimize window if active, restore it if not if WinActive("ahk_exe notepad.exe") { WinMinimize } else { WinActivate } } else { ; start notepad.exe and wait until it comes into existence Run "notepad.exe" WinWait("ahk_exe notepad.exe") } }
    
© www.soinside.com 2019 - 2024. All rights reserved.