2014-11-05 2 views
0

Я купил новую мышь, у которой есть колесо, и я сделал так, чтобы переменная (Quote_Selector) увеличивалась или уменьшалась, из-за чего поворачивается вторичное колесо мыши. Целое число от этой переменной также является ключом, в котором определяется, какое сообщение посылает моя кнопка из массива. Проблема заключается в попытке связать Quote_Selector в качестве ключа, чтобы вытащить какое сообщение в показанном массиве и отправить его. Моя цель - попытаться сделать это как можно более чистым. И я даже пробовал использовать Для выражения [, value] в выражении, но я ничего не могу придумать. Я использую язык и программное обеспечение 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 
+1

Вам необходимо отредактировать и добавить тег, указывающий язык/технологию, которую вы используете. –

+0

Я исправил его, не могли бы вы сказать мне, что делать, чтобы исправить это? –

ответ

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 состояние заявления в ().
  4. Насколько я знаю, вы не можете напрямую использовать элемент массива с командой Send. Поместите элемент массива в другую переменную и после использования этой переменной введите команду Send.
  5. Горячая клавиша не должна быть включена в {}.


Кроме того, всегда используйте AutoHotkey и его documenatation из http://ahkscript.org/ (текущей версии UpToDate, новый официальный сайт)! AutoHotkey и его документация с autohotkey.com устарели, и у вас могут возникнуть проблемы с их использованием!

+0

ВЫ ЛУЧШИЕ! Я пробормотал с советом и выяснил, что мне нужно поставить Quote_Selector на него, чтобы определить точное его значение. Я поставлю фактическое решение для этого, чтобы показать, насколько удивительно, что вы помогаете! СПАСИБО! –

+0

@GraemeChew Спасибо :) Я рад помочь вам. – vasili111

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 

Код, показанный использует два ключа, чтобы изменить сообщение для предыдущей или следующей, и нажав на кнопку отправки посылает, что текст, предоставленный в массиве.