AHK 键等待多个键(缺少 (SC) (VK))?

AHK 键等待多个键(缺少 (SC) (VK))?

我从这里获得了这个功能:

https://www.reddit.com/r/AutoHotkey/comments/1arcp8q/comment/kr1km61/?context=3

它等待按下一个或多个键,但它不接受扫描码(SC)或虚拟键码(VK)。

我希望此功能也能与扫描码(SC)或虚拟键码(VK)一起使用,如下所示:

if keys_wait_multi("abc{SC28}{VK10}{F12}") {
    MsgBox("you pressed one of the keys")
}

Keys_Wait_Multi(keys, options := "") {
    key_pressed := false
    ih := InputHook(options)
    ih.KeyOpt("{All}", "VE")
    ih.KeyOpt(keys, "-E")
    ih.KeyOpt(keys, "NS")
    ih.MinSendLevel := 1
    ih.OnKeyDown := (ih, *) => ih.Stop()
    ih.Start()      ; start input hook
    ih.Wait()       ; wait for input hook to end
    if_success := (ih.EndReason = "Stopped" ? true : false)
    return if_success
}

请问有什么帮助吗?

答案1

这应该有效:

#Requires AutoHotkey v2.0

if keys_wait_multi("abc{SC10B}{VKB2}{F12}") {
    MsgBox("you pressed one of the keys")
}

Keys_Wait_Multi(keys, options := "") {
    key_pressed := false
    ih := InputHook(options)
    ih.KeyOpt("{All}", "V")
    ih.KeyOpt(keys, "-E")
    ih.KeyOpt(keys, "NS")
    ih.MinSendLevel := 1
    ih.OnKeyDown := (ih, *) => ih.Stop()
    ih.Start()      ; start input hook
    ih.Wait()       ; wait for input hook to end
    if_success := (ih.EndReason = "Stopped" ? true : false)
    return if_success
}

SC10B是特殊键,也是VKB2我键盘上的 media_stop 键。请用您自己的键代码替换它们。

相关内容