key - AHK 长按替代键

标签 key autohotkey alternate

我有一个带有这些箭头(小于/大于)字符的键盘作为 Y 和 X 上的备用键。

Keyboard

在此示例中,让我们关注键 X。

默认情况下,替代字符 > 当然是用 AltGr + X 触发的。

但我想通过简单地长按 X 来触发它,以加快速度并且不需要第二只手或手指。

到目前为止,我有以下内容,这是我从其他帖子中获得的:

$x::
    KeyWait, x, T0.2

    if (ErrorLevel)
        Send > ;long

    else {
        KeyWait, x, D T0.2

        if (ErrorLevel)
            Send x ;single
    }

    KeyWait, x
return

这基本上有效,但有一个主要缺陷:
普通的单键按下现在需要太多时间来编写普通的 X 字符。

例如,如果你快速写一个像“exchange”这样的词,你最终会得到像“echxange”这样的东西,因为 X 需要太多时间来发送。

那么如何修改这个脚本来解决这个问题呢?我的想法是发送一个普通的 X 并在注册 {X Up} 后放弃整个脚本。所以在{X Up}之后他将不再等待。

还是有其他想法?

谢谢。

最佳答案

这是一个计算按键持续时间的解决方案,缺点是您总是必须释放按键才能获得所需的输入。这意味着您不能按住 x 键来键入 xxxxxxxx。

$x::
    startTime := A_TickCount ;record the time the key was pressed
    KeyWait, x, U ;wait for the key to be released
    keypressDuration := A_TickCount-startTime ;calculate the duration the key was pressed down
    if (keypressDuration > 200) ;if the key was pressed down for more than 200ms send >
    {
        Send > 
    }
    else ;if the key was pressed down for less than 200ms send x
    {
         Send x 
    }

return

关于key - AHK 长按替代键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55965668/

相关文章:

java - 一种在 Java 中不使用 2D 数组以替代方向打印行的方法..ArrayLists、LinkedLists

c# - 在 Autohotkey 中调用自定义 C#/.Net DLL

autohotkey - 使用 Autohotkey 接受 UAC 提示验证

xml-parsing - AHK 将多个xml元素依次解析成[.txt]文件

database - 平凡的 super 键可以被视为候选键吗?

java - 如何在 Blackberry 应用程序中设置备用入口点?

PHP 和 mySQL 表输出行颜色

asp.net - 使用没有 API key 的谷歌地图?

hash - 用于分析的 Redis key 方案

XML Schema Identity constraints - 我可以在选择器的 XPath 中使用绝对路径吗?