更改变量并将其用作键

时间:2014-11-05 12:57:48

标签: arrays variables key autohotkey

我买了一个新的鼠标,上面有一个滚轮,我已经做了这样一个变量(Quote_Selector)增加或减少了辅助鼠标滚轮转动的方式。此变量中的整数也是定义我的按钮从数组发送的消息的键。问题是尝试链接Quote_Selector作为一个键,以拉出所显示的数组中的消息并发送它。我的目标是尽可能让它变得干净。我甚至尝试过使用 对于表达式中的键[,值],但我似乎无法想出任何东西。我正在使用AutoHotKey语言和软件。

; Declare Variables
Quote_Selector = 0
Min_Selector_Range = 0
Max_Selector_Range = 3

; Declare Message Choices
MessageArray := []
MessageArray[0] := "Darude - Sandstorm"
MessageArray[1] := "Rekt"
MessageArray[2] := "I cry all the time"
MessageArray[3] := "My anaconda don't"
return

; Forward Key Command
$=::
{
If Quote_Selector < %Max_Selector_Range%
Quote_Selector ++
Send, %Quote_Selector%
}
return

; Backward Key Command
$-::
{
If Quote_Selector > %Min_Selector_Range%
Quote_Selector --
Send, %Quote_Selector%
}
return

; Enter Chat Command
$0::
{
Send, {Enter}
Send, /all{space} %value%
Send, {enter}
}
return

2 个答案:

答案 0 :(得分:1)

; Declare Variables
Quote_Selector := 0
Min_Selector_Range := 0
Max_Selector_Range := 3

; Declare Message Choices
MessageArray := []
MessageArray[0] = "Darude - Sandstorm"
MessageArray[1] = "Rekt"
MessageArray[2] = "Ready to meme"
MessageArray[3] = "My anaconda don't"
return

; Forward Key Command
$=::
If (Quote_Selector < Max_Selector_Range)
{
    Quote_Selector := Quote_Selector + 1
}
return

; Backward Key Command
$-::
If (Quote_Selector > Min_Selector_Range)
{
    Quote_Selector := Quote_Selector - 1
}
return

; Enter Chat Command
$0::
    Send, {Enter}
    CurrentMessage := MessageArray[%Quote_Selector%]
    Send, /all{Space} %CurrentMessage%
    Send, {Enter}
    CurrentMessage := ""
return

显示的代码使用两个键将消息更改为上一个或下一个,然后按发送按钮发送数组中提供的文本。

答案 1 :(得分:0)

试试这个:

; Declare Variables
Quote_Selector := 0
Min_Selector_Range := 0
Max_Selector_Range := 3

; Declare Message Choices
MessageArray := []
MessageArray[0] := "Darude - Sandstorm"
MessageArray[1] := "Rekt"
MessageArray[2] := "I cry all the time"
MessageArray[3] := "My anaconda don't"
return

; Forward Key Command
$=::
If (Quote_Selector < Max_Selector_Range)
{
    Quote_Selector := Quote_Selector + 1
    CurrentMessage := MessageArray[Quote_Selector]
    Send, %CurrentMessage%
    CurrentMessage := ""
}
return

; Backward Key Command
$-::

If (Quote_Selector > Min_Selector_Range)
{
    Quote_Selector := Quote_Selector - 1
    CurrentMessage := MessageArray[Quote_Selector]
    Send, %CurrentMessage%
    CurrentMessage := ""
}
return

; Enter Chat Command
$0::
    Send, {Enter}
    Send, /all{space} %value%
    Send, {enter}
return

这是你想要脚本做的吗?


你的错误:

  1. 始终将{语句条件后的if放在新行中,而不是if语句之前。
  2. 这不是实际错误,但始终尝试使用:=代替=来分配数值。
  3. 始终在if。{/ li>中附上()声明条件
  4. 据我所知,您无法使用Send命令直接使用数组项。将数组项放到另一个变量中,并在使用Send命令后使用该变量。
  5. Hotkey不需要包含在{}中。


  6. 此外,始终使用来自http://ahkscript.org/的AutoHotkey及其文档(当前最新版本,新官方网站)! Autohotkey.com上的AutoHotkey及其文档已过时,使用它们可能会遇到一些问题!