如何用( - )和(+)键按下开关箱?

时间:2013-01-09 20:40:31

标签: scripting autohotkey

我正在使用AutoHotKey。我知道我也标记了C,我认为具有足够C编程知识的人也可以在这里提供帮助。

以下代码对我有用。 它将从用户读取两个键盘输入,并根据用户按下它将为该情况运行代码。

1::
Input Key, L1

if Key=1
    {
        ;your code
}
if Key=2
    {
        ;your code
}   
2::
Input Key, L1

if Key=1
    {
        ;your code
}
if Key=2
    {
        ;your code
}   

我想知道如果用户按下+或 - 键我是否可以添加循环或其他东西,它会一次只做一个案例,

例如,如果用户第一次按+,它将执行
1 1如果用户再次按+,它将执行 1 2如果用户按下 - 它将执行
1 1
等等。
 

我不确定这是否能够做到。

 
我是编程新手。请帮忙:)

3 个答案:

答案 0 :(得分:1)

您可以使用全局变量。可以在程序中的任何地方访问全局变量,这与仅存在于函数内部的普通变量不同。

示例:

#NoEnv
#Persistent
SetBatchLines, -1


global myVar = 0


h::
    myVar := myVar + 1
    execute()
return


g::
    myVar := myVar - 1
    execute()
return


execute()
{
    if(myVar == 1)
    {
        ;do stuff
        tooltip, myVar: %myVar%
    }
    else if (myVar == 2)
    {
        ;do stuff
        tooltip, myVar: %myVar%
    }
    else if (myVar == 3)
    {
        ;do stuff
        tooltip, myVar: %myVar%
    }
    else if (myVar == 4)
    {
        ;do stuff
        tooltip, myVar: %myVar%
    }
    else if (myVar == 5)
    {
        ;do stuff
        tooltip, myVar: %myVar%
    }   
    else
    {
        ; nothing
        tooltip,
    }

return
}

我希望这就是你所要求的,我对这个问题不太确定。

答案 1 :(得分:0)

其中一些就是所谓的伪代码。 (不确定你是否熟悉)。它让你需要变成实际的代码......

写给AHK ......

CurrentNumber = 1

(加上钥匙):: CurrentNumber + = 1 发送%CurrentNumber% 返回

(减号键):: CurrentNumber - = 1 发送%CurrentNumber% 返回

不确定这是不是你想要的..如果你想要一个循环它将是不同的。 ;无论哪种方式,祝你好运,我出去了..

答案 2 :(得分:0)

+::
keywait, +, u
{
    If var =
        var = 11
    Else
        var++
}
Return
-::
keywait, -, u
{
    If var =
        var = 11
    Else
        var--
}
Return

“var”应与您的代码中的变量具有相同的名称,该变量有两位或一位数字。

你也可以使用它

NumpadAdd::
keywait, NumpadAdd, u
{
    If var =
        var = 11
    Else
        var++
}
Return
NumpadSub::
keywait, NumpadSub, u
{
    If var =
        var = 11
    Else
        var--
}
Return