如何使用 AutoHotKey 创建热键以在 Windows 10 中将窗口切换到特定桌面

如何使用 AutoHotKey 创建热键以在 Windows 10 中将窗口切换到特定桌面

因此,我创建了一个 AutoHotKey 脚本,使用数字键盘轻松切换到 9 个不同的桌面(可以将其想象成一个 3x3 网格)。问题是我还想使用热键来移动视窗到另一个桌面,菜单选项总是忽略当前桌面(参见示例代码中的最后一个热键)。到目前为止,我先按 Win-Tab,然后按 AppsKey,然后按 M,这样就会调出菜单将当前窗口移动到某个位置。此时,如果列出了所有桌面,我只需向下移动一些数量即可。但是,当前桌面总是被忽略,这是不可能的——我可以通过一个错误摆脱它。

我现在拥有的功能还过得去(只需一个键就可以调出菜单,剩下的就交给我了),但我想更进一步没有必须编写大量代码。

由于我不清楚该选择哪个菜单项,所以我无法完成此操作。有没有简单的方法来解决这个问题?例如,是否有一种方法可以向下移动 N 个项目,然后检查当前菜单项文本是什么,并调整 1?

这是我的示例代码。列表中只有最后一个热键真正重要,其余的热键仅用于说明我目前的设置。

突出的问题是:我怎样才能拥有一个像 Win-Shift-Numpad3 这样的独特热键来将当前窗口移动到桌面 3,但拥有从 1 到 9 的独特热键?

; Windows+Number pad keys = Windows 10 desktop switching.
; number pad to match a 3x3 desktop
#Numpad1::
#NumpadEnd::
    Send, {LWin down}{Ctrl down}{Right 9}{Left 2}{Ctrl up}{LWin up}
    return
#Numpad2::
#NumpadDown::
    Send, {LWin down}{Ctrl down}{Right 9}{Left 1}{Ctrl up}{LWin up}
    return
#Numpad3::
#NumpadPgDn::
    Send, {LWin down}{Ctrl down}{Right 9}{Ctrl up}{LWin up}
    return
#Numpad4::
#NumpadLeft::
    Send, {LWin down}{Ctrl down}{Left 9}{Right 3}{Ctrl up}{LWin up}
    return
#Numpad5::
#NumpadClear::
    Send, {LWin down}{Ctrl down}{Left 9}{Right 4}{Ctrl up}{LWin up}
    return
#Numpad6::
#NumpadRight::
    Send, {LWin down}{Ctrl down}{Right 9}{Left 3}{Ctrl up}{LWin up}
    return
#Numpad7::
#NumpadHome::
    Send, {LWin down}{Ctrl down}{Left 9}{Ctrl up}{LWin up}
    return
#Numpad8::
#NumpadUp::
    Send, {LWin down}{Ctrl down}{Left 9}{Right 1}{Ctrl up}{LWin up}
    return
#Numpad9::
#NumpadPgUp::
    Send, {LWin down}{Ctrl down}{Left 9}{Right 2}{Ctrl up}{LWin up}
    return

;   Bring up the "move this window to desktop..." menu.  Since the menu is always different, don't operate on it.  Just leave it at that.
#!Numpad0::
#!NumpadIns::
#+Numpad0::
#+NumpadIns::
#Numpad0::
#NumpadIns::
    Send, {LWin down}{Tab}{LWin up}
    Sleep, 400
    Send, {AppsKey}M
return

相关内容