使用 AutoHotKey 在 Excel 中将“Ctrl Shift Z”重新映射为“Ctrl Y”

使用 AutoHotKey 在 Excel 中将“Ctrl Shift Z”重新映射为“Ctrl Y”

我在 Windows 8.1 上使用 MS Excel 2013,并且正在使用这个 AutoHotKey 脚本...

$^+z::
    SetKeyDelay -1
    Send {RCtrl Down}y{RCtrl Up}

将“Ctrl Shift Z”重新映射为“Ctrl Y”,以便执行...编辑 >> 重做,在某些使用“Ctrl Y”执行此操作的 Windows 程序中。因此,当我在这些程序中按下“Ctrl Shift Z”时,AHK 会发送“Ctrl Y”,然后我就会收到重做命令。

但在 Excel 中,只有当我处理 *.xlsx 时它才有效,当我处理 *.xlsb 时则无效,如果我在 *.xlsb 上按“Ctrl Shift Z”,它根本不起作用。这是为什么?

答案1

尝试将发送语句更改为 ^y。

$^+z::Send ^y

如果 Excel 认为Shift+Ctrl+y按下了某个键,它可能会发出哔哔声,如果您按住 Shift 键作为第一个修饰键,然后{RCtrl Down}明确发送,可能会出现这种情况。

如果 AutoHotkey 知道您正在发送一个组合键,它将自动为您撤消/重做修饰键,但也许因为您发送了一个明确的 RCtrl Down,它不会为您执行此操作,而 Excel 可能只是看到Shift+Ctrl+z并发出哔哔声。

答案2

尝试这个:

    $^+z::
        SetKeyDelay -1
        Send {RCtrl Down}
        Send y
        Send {RCtrl Up}
    return

相关内容