AutoHotkey:切换脚本 Minimize/Maximize Window
AutoHotkey: Script to Toggle Minimize/Maximize Window
我只是希望能够在我经常使用的某个全屏应用程序上使用热键“最小化”和“最大化”进行切换。我只想将它用于一个应用程序,而不是任何具有焦点的应用程序。
我在网上阅读了数十种方法,none 其中有效。
我知道我可以使用一些命令:
WinMinimize, A
WinMaximize, A
但我不确定如何将它们串在一起。
在寻找示例时,我在某处想到了这个:
^#n::
IfWinExist, ahk_class Notepad
{
WinGet,WinState,MinMax,ahk_class Notepad
If WinState = -1
WinMaximize
else
WinMinimize
}
; else
; Run, Notepad
Return
然而,这只会最大化我的应用程序,而不会最小化它。也许这是因为应用程序是全屏应用程序,我不知道。
我能够从另一个网站检索到一些信息,这些信息帮助我得出了可能对其他用户有用的答案。当与 AutoHotKey 一起使用时,此脚本将适用于全屏应用程序,方法是使用以下代码:
Joy12::
WinGetPos, X, Y, Width, Height, WindowName
if (X == -32000)
WinMaximize, WindowName
else if (X == 0 and Y == 0 and Width == 1920 and Height == 1080)
WinMinimize, Resident Evil 4
WinActivate, Program Manager
return
用户可能需要对代码进行小的改动,将 Joy12
替换为他们希望使用的任何密钥,并将 WindowName
替换为他们希望使用的 window 的名称.用户可能还必须更改以下值:
1920 and Height == 1080
无论他们的全屏分辨率是多少。
我对计算器也有同样的要求,稍等一下!经过实验,我想到了这个:
;! is alt
!c:: ;calculator
IfWinExist Calculator
{
Gosub, process_calc
} else {
run calc
}
return
process_Calc:
WinGetPos, x, y,,,Calculator
if (x = 0) { ; Calculator is minimized to Taskbar
WinMinimize Calculator ;WinMinimize is needed to select Calculator(other Win.... didn't work).
WinRestore Calculator
} else {
WinMinimize Calculator ; Alt-C now alternates between Minimize/Restore to/from Taskbar
}
return
您可以在使用 WinGet
时通过检查 MinMax
值的值来最小化和最大化。
; To toggle Citrix remote desktop window by using Function 12 key
F12::
; get MinMax state for the given title and save it to variable MX
WinGet MX, MinMax, YourWindowTitle
; if it is maximized, minimize it
if (MX==1)
WinMinimize YourWindowTitle
; if it is minimized, maximize it
else if (MX==-1)
WinMaximize YourWindowTitle
return
此脚本使用 F12 键切换最小化和最大化给定 window。
出于某种原因,我在上面发布的旧代码不再有效,但在@Ram 的帮助下,我能够制作出适合这款游戏的东西:
#SingleInstance Force
SetWorkingDir %A_ScriptDir%
if not A_IsAdmin
Run *RunAs "%A_ScriptFullPath%"
1Joy10::
; get MinMax state for the given title and save it to variable MX
WinGet MX, MinMax, Resident Evil 4
if (MX==-1)
WinMaximize Resident Evil 4
WinActivate
Return
#IfWinActive Resident Evil 4
1Joy10::
Send, {ALT DOWN}{TAB}{ALT UP}
Return
我只是希望能够在我经常使用的某个全屏应用程序上使用热键“最小化”和“最大化”进行切换。我只想将它用于一个应用程序,而不是任何具有焦点的应用程序。
我在网上阅读了数十种方法,none 其中有效。
我知道我可以使用一些命令:
WinMinimize, A
WinMaximize, A
但我不确定如何将它们串在一起。 在寻找示例时,我在某处想到了这个:
^#n::
IfWinExist, ahk_class Notepad
{
WinGet,WinState,MinMax,ahk_class Notepad
If WinState = -1
WinMaximize
else
WinMinimize
}
; else
; Run, Notepad
Return
然而,这只会最大化我的应用程序,而不会最小化它。也许这是因为应用程序是全屏应用程序,我不知道。
我能够从另一个网站检索到一些信息,这些信息帮助我得出了可能对其他用户有用的答案。当与 AutoHotKey 一起使用时,此脚本将适用于全屏应用程序,方法是使用以下代码:
Joy12::
WinGetPos, X, Y, Width, Height, WindowName
if (X == -32000)
WinMaximize, WindowName
else if (X == 0 and Y == 0 and Width == 1920 and Height == 1080)
WinMinimize, Resident Evil 4
WinActivate, Program Manager
return
用户可能需要对代码进行小的改动,将 Joy12
替换为他们希望使用的任何密钥,并将 WindowName
替换为他们希望使用的 window 的名称.用户可能还必须更改以下值:
1920 and Height == 1080
无论他们的全屏分辨率是多少。
我对计算器也有同样的要求,稍等一下!经过实验,我想到了这个:
;! is alt
!c:: ;calculator
IfWinExist Calculator
{
Gosub, process_calc
} else {
run calc
}
return
process_Calc:
WinGetPos, x, y,,,Calculator
if (x = 0) { ; Calculator is minimized to Taskbar
WinMinimize Calculator ;WinMinimize is needed to select Calculator(other Win.... didn't work).
WinRestore Calculator
} else {
WinMinimize Calculator ; Alt-C now alternates between Minimize/Restore to/from Taskbar
}
return
您可以在使用 WinGet
时通过检查 MinMax
值的值来最小化和最大化。
; To toggle Citrix remote desktop window by using Function 12 key
F12::
; get MinMax state for the given title and save it to variable MX
WinGet MX, MinMax, YourWindowTitle
; if it is maximized, minimize it
if (MX==1)
WinMinimize YourWindowTitle
; if it is minimized, maximize it
else if (MX==-1)
WinMaximize YourWindowTitle
return
此脚本使用 F12 键切换最小化和最大化给定 window。
出于某种原因,我在上面发布的旧代码不再有效,但在@Ram 的帮助下,我能够制作出适合这款游戏的东西:
#SingleInstance Force
SetWorkingDir %A_ScriptDir%
if not A_IsAdmin
Run *RunAs "%A_ScriptFullPath%"
1Joy10::
; get MinMax state for the given title and save it to variable MX
WinGet MX, MinMax, Resident Evil 4
if (MX==-1)
WinMaximize Resident Evil 4
WinActivate
Return
#IfWinActive Resident Evil 4
1Joy10::
Send, {ALT DOWN}{TAB}{ALT UP}
Return