Windows 7 为窗口指定热键(并记住大小和位置)。啊
我找到了以下脚本,用于为已打开的窗口动态分配热键:Windows 7 为窗口指定热键(并记住大小和位置)。啊,windows-7,keyboard-shortcuts,autohotkey,Windows 7,Keyboard Shortcuts,Autohotkey,我找到了以下脚本,用于为已打开的窗口动态分配热键: Code (Expand): Loop 10 { i := A_Index - 1 HotKey #^%i%,DynHotkey HotKey #%i%, DynHotkey HotKey #!%i%,DynHotkey } Exit DynHotkey: StringRight i, A_ThisHotKey, 1 StringMid what,A_ThisHotKey, 2, 1 var := v
Code (Expand):
Loop 10
{
i := A_Index - 1
HotKey #^%i%,DynHotkey
HotKey #%i%, DynHotkey
HotKey #!%i%,DynHotkey
}
Exit
DynHotkey:
StringRight i, A_ThisHotKey, 1
StringMid what,A_ThisHotKey, 2, 1
var := var%i%
IfEqual what, ^, WinGet var%i%, ID, A ; Save ID
Else IfEqual what,!, WinMinimizeAll ; MinimizeAll
WinRestore ahk_id %var%
WinActivate ahk_id %var% ; Switch
Return
(代码是从此线程复制的)
使用上述脚本,您可以:
非常感谢,您可以使用WinGetPos读取实际位置并保存它。然后可以使用WinMove设置位置。这是一个函数列表:。您不需要使代码复杂化:) 快速提问:如果你的窗口最小化,你不会有任何问题,对吗? 代码上的“问题”是
WinRestore
问题是,如果窗口未最小化,然后执行WinRestore
操作,它会将其大小和位置更改为“未最大化”版本
WinActivate仅在最小化窗口时自动执行WinRestore,因此您可以安全地删除第16行(WinRestore),因为WinActivate将执行您需要的操作
--编辑--
代码应该是这样的:
Loop 10
{
i := A_Index - 1
HotKey #^%i%,DynHotkey
HotKey #%i%, DynHotkey
HotKey #!%i%,DynHotkey
}
Exit
DynHotkey:
StringRight i, A_ThisHotKey, 1
StringMid what,A_ThisHotKey, 2, 1
var := var%i%
IfEqual what, ^, WinGet var%i%, ID, A ; Save ID
Else IfEqual what,!, WinMinimizeAll ; MinimizeAll
WinActivate ahk_id %var% ; Switch
Return
我测试过了,效果很好