如何使“输入”(或上下文)依赖于热字符串/热键?

时间:2018-12-22 21:00:58

标签: autohotkey

我想要一个热键或热字符串(无论哪个更容易),这样我就可以轻松地进行转换。

1:5变成[1,2,3,4,5]或 3:7变成[3,4,5,6,7]等。

我希望它适用于所有整数... 因此,我想要“同一个热字符串的多个变体”(或者,如果更简单:一个工作原理类似的热键:例如,按strg + h并键入1:3应该产生[1,2,3])

它应该认识到我先键入了一个数字,然后是冒号,再键入另一个数字,然后相应地展开。.

我查看了Input函数,但这似乎并不是我想要的。

我不需要有效的解决方案。提示和链接或用于进一步谷歌搜索的关键字已经很有帮助。

1 个答案:

答案 0 :(得分:0)

键入+ h或按strg + h后,键入两个数字以产生所需的结果:

:*:+h::
^h::    
    nr := ""  ; empty variable's content
    end_nr := ""
    Input, var, L2 ; Length limit=2
    ; Input, var, L2  V ; V: Visible
    If var is not integer
    {
        MsgBox, "%var%" is not integer
            return
    }
    first_nr := SubStr(var, 1, 1)  
    second_nr := SubStr(var, 0)
    if (first_nr >= second_nr)
    {
        MsgBox, "%first_nr%" is greater or equal "%second_nr%"
            return
    }
    Loop
    {
        nr++    ; increase the number in the variable "nr" by 1 in each iteration
        if (nr < first_nr)
            continue    
        If (nr = second_nr)
            break   
        end_nr .= nr . "," ; concatenate the outputs by adding a comma to each one
    }
    If (first_nr = 0)
        MsgBox, "0,%end_nr%%second_nr%"
    else
    MsgBox, "%end_nr%%second_nr%"
return