1

Тема: AHK: Несколько вариантов sleep

Подскажите пожалуйста.
Есть переменная delay для sleep, в настоящий момент это random от 40 до 90 секунд
Есть три варианта переменной Random, Clickcount, 0, 2
Как сделать, чтобы если Clickcount = 0, то

Random, delay, 80 ,90

если Clickcount = 1, то

Random, delay, 40 ,90

а если Clickcount = 2, то

Random, delay, 20 ,40

Т.е. три варианта sleep для каждого из вариантов Clickcount
Как это реализовать? Спасибо!

2

Re: AHK: Несколько вариантов sleep

Через оператор If/Else.


If Clickcount = 0
{
    Random, delay, 80 ,90
}
Else If Clickcount = 1
{
    Random, delay, 40 ,90
}
Else If Clickcount = 2
{
    Random, delay, 20 ,40
}

3

Re: AHK: Несколько вариантов sleep

Или через массив:

a := {0:[80,90],1:[40,90],2:[20,40]}[Clickcount]
Random, delay, a[1] ,a[2]
По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

4

Re: AHK: Несколько вариантов sleep

Спасибо!

5

Re: AHK: Несколько вариантов sleep

a := {0:[80,90],1:[40,90],2:[20,40]}[Clickcount]
Random, delay, a[1] ,a[2]

Что-то я не понял, как  это работает. Объясните, пожалуйста.

6

Re: AHK: Несколько вариантов sleep

Наврядли вкратце получится объяснить массивы.
В переменную "а" сохраняется значение ключа указанного в Clickcount.
Значением является массив.

[80,90]

  Соответственно извлекаем первое и второе значения из полученного массива.

a[1] ,a[2]
По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

7

Re: AHK: Несколько вариантов sleep

Попробовал присваивать заранее разные значения Clickcount. При 0 и 1 вроде всё ясно. Но при 11 или без присвоения значения вообще непонятно откуда берутся шестизначные числа и что они означают.

8

Re: AHK: Несколько вариантов sleep

При пустых значениях в Random, величины устанавливаются в пределах 0 - 2147483647. Если значение ключа может быть не корректным, то это нужно проверять.

Clickcount := 11
If (a := {0:[80,90],1:[40,90],2:[20,40]}[Clickcount]) != ""
    Random, delay, a[1] ,a[2]
MsgBox % delay
По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

9

Re: AHK: Несколько вариантов sleep

Всё равно ничего не понятно. Где можно про это почитать?

10

Re: AHK: Несколько вариантов sleep

Про что?

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

11

Re: AHK: Несколько вариантов sleep

В английской справке есть:
Objects --> Simple Arrays, Associative Arrays
Arrays --> Associative Arrays [AHK_L 31+], Pseudo-Arrays

12

Re: AHK: Несколько вариантов sleep

Читал это сразу. нет там конструкций типа

a := {0:[80,90],1:[40,90],2:[20,40]}[Clickcount]

с чем-то похожим на [Clickcount] в конце.

13

Re: AHK: Несколько вариантов sleep

Там есть пример:

Array := {KeyA: ValueA, KeyB: ValueB, ..., KeyZ: ValueZ}

А в конструкции serzh82saratov в квадратных скобках к массиву "приставлено" имя переменной, что соответствует

Simple Arrays пишет:

Retrieve an item:

Value := Array[Index]

как в простом примере:

asd10 := 999
Clickcount := 10
a := asd%Clickcount%
MsgBox, % a

Попробуйте запустить следующий пример с различными значениями Clickcount:

; Clickcount := 0
  Clickcount := 1
; Clickcount := 2
a := {0:[80,90],1:[40,90],2:[20,40]}[Clickcount]
MsgBox, % "a[1]="a[1] "a[2]="a[2] "a[3]=" a[3] "a[4]="a[4] 

14

Re: AHK: Несколько вариантов sleep

Так понятнее. Массивы внутри массива, где Clickcount - номер массива внутри массива массивов, а остальное как обычно. Занятная штука. Спасибо за разъяснения!

Теперь хоть понятно что за что отвечает, а то у меня при двузначных членах шестизначные результаты постоянно получались.