Последовательное нажатие клавиш

Статус
В этой теме нельзя размещать новые ответы.

staskov2009

Новичок
Автор темы
6
2
Здравствуйте.
Хотел написать скрипт, который позволяет проигрывать музыку по нажатиям на Num клавиатуре. Пытался гуглить полу готовые варианты, но видимо не то гуглил.

Пример скрипта:
Если после нажатия на Num1 ничего не нажато, играет музыка №1.
Если же после нажатия Num1 идет нажатие Num0, то проигрывать музыку №2.
Если же после нажатия Num1 идет повторное нажатие Num1, то проигрывать музыку №3.
Если же после нажатия Num1 идет нажатие Num2, проигрывать музыку №4.
И так далее до Num9

Пытался применить KeyWait, но так и не допер как приклеить это дело.
В итоге, я хочу иметь вариативность из всех нажатий на Num клавиатуре вплоть до варианта Num9 + Num9. Но мне хотя бы пример на Num1, остальное сам допилю. Рабочий вариант закину сюда же в тему, конечно когда доделаю. Тема актуальна, пока не отпишусь.
 
  • Нравится
Реакции: Smer4

staskov2009

Новичок
Автор темы
6
2
В очередной раз перелистав справку, додумался как сделать.

Думаю что это можно было сделать компактнее и проще, но пришел в голову только этот вариант.
Код:
Numpad1::
    KeyWait, Numpad1
    Input, SingleKey, L1 T1
        if SingleKey = 0 ;10
            {
                SoundPlay, 10.mp3
                return
            }
        if SingleKey = 1 ;11
            {
                SoundPlay, 11.mp3
                return
            }
        if SingleKey = 2 ;12
            {
                SoundPlay, 12.mp3
                return
            }
        if SingleKey = 3 ;13
            {
                SoundPlay, 13.mp3
                return
            }
        if SingleKey = 4 ;14
            {
                SoundPlay, 14.mp3
                return
            }
        if SingleKey = 5 ;15
            {
                SoundPlay, 15.mp3
                return
            }
        if SingleKey = 6 ;16
            {
                SoundPlay, 16.mp3
                return
            }
        if SingleKey = 7 ;17
            {
                SoundPlay, 17.mp3
                return
            }
        if SingleKey = 8 ;18
            {
                SoundPlay, 18.mp3
                return
            }
        if SingleKey = 9 ;19
            {
                SoundPlay, 19.mp3
                return
            }
        if ErrorLevel = Timeout ;1
        {
            SoundPlay, 1.mp3
            return
        }
    Return
Numpad2::
    KeyWait, Numpad2
    Input, SingleKey, L1 T1
        if SingleKey = 0 ;20
            {
                SoundPlay, 20.mp3
                return
            }
        if SingleKey = 1 ;21
            {
                SoundPlay, 21.mp3
                return
            }
        if SingleKey = 2 ;22
            {
                SoundPlay, 22.mp3
                return
            }
        if SingleKey = 3 ;23
            {
                SoundPlay, 23.mp3
                return
            }
        if SingleKey = 4 ;24
            {
                SoundPlay, 24.mp3
                return
            }
        if SingleKey = 5 ;25
            {
                SoundPlay, 25.mp3
                return
            }
        if SingleKey = 6 ;26
            {
                SoundPlay, 26.mp3
                return
            }
        if SingleKey = 7 ;27
            {
                SoundPlay, 27.mp3
                return
            }
        if SingleKey = 8 ;18
            {
                SoundPlay, 28.mp3
                return
            }
        if SingleKey = 9 ;19
            {
                SoundPlay, 29.mp3
                return
            }
        if ErrorLevel = Timeout ;1
        {
            SoundPlay, 2.mp3
            return
        }
    Return
Numpad3::
    KeyWait, Numpad3
    Input, SingleKey, L1 T1
        if SingleKey = 0 ;30
            {
                SoundPlay, 30.mp3
                return
            }
        if SingleKey = 1 ;31
            {
                SoundPlay, 31.mp3
                return
            }
        if SingleKey = 2 ;32
            {
                SoundPlay, 32.mp3
                return
            }
        if SingleKey = 3 ;33
            {
                SoundPlay, 33.mp3
                return
            }
        if SingleKey = 4 ;34
            {
                SoundPlay, 34.mp3
                return
            }
        if SingleKey = 5 ;35
            {
                SoundPlay, 35.mp3
                return
            }
        if SingleKey = 6 ;36
            {
                SoundPlay, 36.mp3
                return
            }
        if SingleKey = 7 ;37
            {
                SoundPlay, 37.mp3
                return
            }
        if SingleKey = 8 ;38
            {
                SoundPlay, 38.mp3
                return
            }
        if SingleKey = 9 ;39
            {
                SoundPlay, 39.mp3
                return
            }
        if ErrorLevel = Timeout ;1
        {
            SoundPlay, 3.mp3
            return
        }
    Return
Numpad4::
    KeyWait, Numpad4
    Input, SingleKey, L1 T1
        if SingleKey = 0 ;40
            {
                SoundPlay, 40.mp3
                return
            }
        if SingleKey = 1 ;41
            {
                SoundPlay, 41.mp3
                return
            }
        if SingleKey = 2 ;42
            {
                SoundPlay, 42.mp3
                return
            }
        if SingleKey = 3 ;43
            {
                SoundPlay, 43.mp3
                return
            }
        if SingleKey = 4 ;44
            {
                SoundPlay, 44.mp3
                return
            }
        if SingleKey = 5 ;45
            {
                SoundPlay, 45.mp3
                return
            }
        if SingleKey = 6 ;46
            {
                SoundPlay, 46.mp3
                return
            }
        if SingleKey = 7 ;47
            {
                SoundPlay, 47.mp3
                return
            }
        if SingleKey = 8 ;48
            {
                SoundPlay, 48.mp3
                return
            }
        if SingleKey = 9 ;49
            {
                SoundPlay, 49.mp3
                return
            }
        if ErrorLevel = Timeout ;1
        {
            SoundPlay, 4.mp3
            return
        }
    Return
Numpad5::
    KeyWait, Numpad5
    Input, SingleKey, L1 T1
        if SingleKey = 0 ;50
            {
                SoundPlay, 50.mp3
                return
            }
        if SingleKey = 1 ;51
            {
                SoundPlay, 51.mp3
                return
            }
        if SingleKey = 2 ;52
            {
                SoundPlay, 52.mp3
                return
            }
        if SingleKey = 3 ;53
            {
                SoundPlay, 53.mp3
                return
            }
        if SingleKey = 4 ;54
            {
                SoundPlay, 54.mp3
                return
            }
        if SingleKey = 5 ;55
            {
                SoundPlay, 55.mp3
                return
            }
        if SingleKey = 6 ;56
            {
                SoundPlay, 56.mp3
                return
            }
        if SingleKey = 7 ;57
            {
                SoundPlay, 57.mp3
                return
            }
        if SingleKey = 8 ;58
            {
                SoundPlay, 58.mp3
                return
            }
        if SingleKey = 9 ;59
            {
                SoundPlay, 59.mp3
                return
            }
        if ErrorLevel = Timeout ;1
        {
            SoundPlay, 5.mp3
            return
        }
    Return
Numpad6::
    KeyWait, Numpad6
    Input, SingleKey, L1 T1
        if SingleKey = 0 ;10
            {
                SoundPlay, 60.mp3
                return
            }
        if SingleKey = 1 ;61
            {
                SoundPlay, 61.mp3
                return
            }
        if SingleKey = 2 ;62
            {
                SoundPlay, 62.mp3
                return
            }
        if SingleKey = 3 ;63
            {
                SoundPlay, 63.mp3
                return
            }
        if SingleKey = 4 ;64
            {
                SoundPlay, 64.mp3
                return
            }
        if SingleKey = 5 ;65
            {
                SoundPlay, 65.mp3
                return
            }
        if SingleKey = 6 ;66
            {
                SoundPlay, 66.mp3
                return
            }
        if SingleKey = 7 ;67
            {
                SoundPlay, 67.mp3
                return
            }
        if SingleKey = 8 ;68
            {
                SoundPlay, 68.mp3
                return
            }
        if SingleKey = 9 ;69
            {
                SoundPlay, 69.mp3
                return
            }
        if ErrorLevel = Timeout ;1
        {
            SoundPlay, 6.mp3
            return
        }
    Return
Numpad7::
    KeyWait, Numpad7
    Input, SingleKey, L1 T1
        if SingleKey = 0 ;70
            {
                SoundPlay, 70.mp3
                return
            }
        if SingleKey = 1 ;71
            {
                SoundPlay, 71.mp3
                return
            }
        if SingleKey = 2 ;72
            {
                SoundPlay, 72.mp3
                return
            }
        if SingleKey = 3 ;73
            {
                SoundPlay, 73.mp3
                return
            }
        if SingleKey = 4 ;74
            {
                SoundPlay, 74.mp3
                return
            }
        if SingleKey = 5 ;75
            {
                SoundPlay, 75.mp3
                return
            }
        if SingleKey = 6 ;76
            {
                SoundPlay, 76.mp3
                return
            }
        if SingleKey = 7 ;77
            {
                SoundPlay, 77.mp3
                return
            }
        if SingleKey = 8 ;78
            {
                SoundPlay, 78.mp3
                return
            }
        if SingleKey = 9 ;79
            {
                SoundPlay, 79.mp3
                return
            }
        if ErrorLevel = Timeout ;1
        {
            SoundPlay, 7.mp3
            return
        }
    Return
Numpad8::
    KeyWait, Numpad8
    Input, SingleKey, L1 T1
        if SingleKey = 0 ;80
            {
                SoundPlay, 80.mp3
                return
            }
        if SingleKey = 1 ;81
            {
                SoundPlay, 81.mp3
                return
            }
        if SingleKey = 2 ;82
            {
                SoundPlay, 82.mp3
                return
            }
        if SingleKey = 3 ;83
            {
                SoundPlay, 83.mp3
                return
            }
        if SingleKey = 4 ;84
            {
                SoundPlay, 84.mp3
                return
            }
        if SingleKey = 5 ;85
            {
                SoundPlay, 85.mp3
                return
            }
        if SingleKey = 6 ;86
            {
                SoundPlay, 86.mp3
                return
            }
        if SingleKey = 7 ;87
            {
                SoundPlay, 87.mp3
                return
            }
        if SingleKey = 8 ;88
            {
                SoundPlay, 88.mp3
                return
            }
        if SingleKey = 9 ;89
            {
                SoundPlay, 89.mp3
                return
            }
        if ErrorLevel = Timeout ;8
        {
            SoundPlay, 8.mp3
            return
        }
    Return
Numpad9::
    KeyWait, Numpad9
    Input, SingleKey, L1 T1
        if SingleKey = 0 ;90
            {
                SoundPlay, 90.mp3
                return
            }
        if SingleKey = 1 ;91
            {
                SoundPlay, 91.mp3
                return
            }
        if SingleKey = 2 ;92
            {
                SoundPlay, 92.mp3
                return
            }
        if SingleKey = 3 ;93
            {
                SoundPlay, 93.mp3
                return
            }
        if SingleKey = 4 ;94
            {
                SoundPlay, 94.mp3
                return
            }
        if SingleKey = 5 ;95
            {
                SoundPlay, 95.mp3
                return
            }
        if SingleKey = 6 ;96
            {
                SoundPlay, 96.mp3
                return
            }
        if SingleKey = 7 ;97
            {
                SoundPlay, 97.mp3
                return
            }
        if SingleKey = 8 ;98
            {
                SoundPlay, 98.mp3
                return
            }
        if SingleKey = 9 ;99
            {
                SoundPlay, 99.mp3
                return
            }
        if ErrorLevel = Timeout ;9
        {
            SoundPlay, 9.mp3
            return
        }
    Return
Вроде все работает. Дело закрыто.
 
Последнее редактирование:
  • Нравится
Реакции: Smer4

Phoenixxx_CZAR

Известный
61
31
Зачем каждый раз писать return, если можно было запихнуть в else if.
Вот тебе нормальный вариант, по аналогии я думаю поймешь.
AutoHotKey:
array := {"numpad1": {"standart": 1, "state": {0: 10, 1: 11, 2: 12, 3: 13}}
        ,"numpad2": {"standart": 2, "state": {0: 20, 1: 21, 2: 22, 3: 23}}}

numpad1::
numpad2::
KeyWait, % A_ThisHotKey
Input, SingleKey, L1 T1
if (music := array[A_ThisHotKey]["state"][SingleKey])
    SoundPlay, % music ".mp3"
else
    SoundPlay, % array[A_ThisHotKey]["standart"] ".mp3"
return
 
Статус
В этой теме нельзя размещать новые ответы.