-1

我正在使用 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
等等。


我不确定这是否可行。


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

4

3 回答 3

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
}

我希望这是您要问的,我从这个问题中不太确定。

于 2013-01-10T11:06:16.730 回答
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
于 2013-01-13T19:43:14.207 回答
0

; 其中一些是所谓的伪代码。(不确定你是否熟悉)。它使您需要将其转换为实际代码...

; 写给AHK...

当前编号 = 1

(加号键):: CurrentNumber += 1 发送 %CurrentNumber% 返回

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

; 不确定这是否是您要寻找的东西..如果您想要一个循环,它会有所不同。; 不管怎样,祝你好运,我出去了。。

于 2013-01-10T02:13:23.787 回答