26 (изменено: HASBULAT, 2018-04-24 23:50:39)

Re: Как настроить время ?

svoboden пишет:

Получается, вы хотите отключить еще таймер на "B"?

Просто в одной программе надо так, чтобы при нажатии на А с интервалом менее 500 секунд - чередовались 2 и 3, более - только 2.
Если нажать на B, то независимо от интервала времени, после нажатия на А надо чтобы чередование продолжилось (Было 2 - стало 3 и наоборот) так как в первой части, я имею ввиду с интервалом. Получается что при нажатии на B ( я так думаю) надо таймер выключать. НА А он снова должен заработать.

Пример 1:
A 100мс A 100мс A 100мс A 100мс A 100мс A 100мс A 800мс A 800мс A 800мс A 800мс A 800мс
2           3            2           3           2           3           2           2           2           2           2             тут всё работает как часики.

Пример 2:
A 100мс A 100мс A 100мс A 100мс A 800мс A 800мс A 800мс B 800мс A 100мс B 100мс A 10000мс B 10000мс A 100мс B 100мс A 100мс A 100мс A 900мс A 900мс A
2           3           2            3           2          2           2                        3                        2                               3                        2           3            2           2           2

27 (изменено: svoboden, 2018-04-25 05:58:36)

Re: Как настроить время ?

HASBULAT, это уже называется спам, лучше не спамьте.
А по вопросу, то вот, такого вот франкенштейна слепил, может, поможет:

         #Usehook       
          k := 1
          sdf := true
          werw := false

          #if sdf
          vk41::
          wer := true
          SetTimer, t, 2000
          k += 1
          send % k
          if k = 3
          k := 1
          return
          #if

          #if werw
          vk41::
          wer := true
          SetTimer, t, 2000
          k += 1
          send % k
          if k = 3
          k := 1
          return
          #if

          t:
          k := 1
          On := true
          wer := false
          return

          #if wer
          vk42::
          if k = 3
          k := 1
          return
          #if

          #if On
          vk42::
          if k = 1
          k := 2
          SetTimer, t, off
          sdf := false
          werw := true
          return
          #if

P.S. Более я не понимаю, чего вы хотите.

28 (изменено: HASBULAT, 2018-04-25 00:18:52)

Re: Как настроить время ?

svoboden пишет:

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

Да ладно. Я создал тему с просьбой о помощи. "От темы не отвлекаюсь", матами не ругаюсь, разговариваю вежливо и тихо. Это точно форум? Раздел "Общение" ?

svoboden пишет:

А по вопросу вот, такого вот франкенштейна слипил, может, поможет:

Нет к сожаленю, не помог. Франкенштейн мощный конечно, но блин не помог. Теперь при нажатии поочерёдно B  и A более 500 мс (поменял) просто 3, не чередуется. В прошлой версии было просто 2. Я тоже никак не могу заставить чередоваться.

29 (изменено: svoboden, 2018-04-25 00:30:41)

Re: Как настроить время ?

Ок, надо подумать, не думаю, что тут сложно что-то. Просто слишком много счетчиков, таймеров и переменных в нем. Потом напишу ответ.

30

Re: Как настроить время ?

svoboden пишет:

Ок, надо подумать, не думаю, что тут сложно что-то. Просто слишком много счетчиков и переменных в нем. Потом напишу ответ.

Спасибо! Я блин целый день сам бьюсь и никак.

Если проследить, то при нажатии на B кидает в блок "#if On", там K становится =2 (тут мне кажется запара), отключается счётчик  и перебрасывает в блок "#if werw" (он же true). В нём при нажатии на А включается счётчик и если время следующего нажатия более 500 мс, то К становится =1, потом при нажатии на В выполняется условие "if k = 1
          k := 2" и так по кругу. Получается всегда (если между нажатиями В и А более 500 мс) выдаёт 3.

31

Re: Как настроить время ?

vk41::
   SetTimer, Timer, -500
   Send, % (t := !t) ? 2 : 3
   Return
   
Timer:
   prev_t := t
   t := 0
   Return
   
vk42:: t := prev_t

Это ж надо было из-за такой ерунды на две страницы болтовню разводить!

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Skype dmitry_fiveg

32 (изменено: HASBULAT, 2018-04-25 02:50:37)

Re: Как настроить время ?

teadrinker пишет:

Это ж надо было из-за такой ерунды на две страницы болтовню разводить!

Ну это потому что я полный ноль в этом, да ещё  не правильно объясняю наверно.
Но рано радоваться! Хотя теперь заработала половина второй части. Что имеем:
если долбить по А < 500 мс или более то тут всё правильно 232323/222222 соответсвенно.
Если долбить поочерёдно В и А интервал > 500 мс,  тут тоже всё правльно, очерёдность продолжается, 232323232 чередуются.
Но если долбить поочерёдно В и А с интервалом < 500 мс, тут или 22222222 или 33333333. Не чередуются

33

Re: Как настроить время ?

vk41::
   SetTimer, Timer, -500
   Send, % (prev_t := t := !t) ? 2 : 3
   Return
   
Timer:
   prev_t := t
   t := 0
   Return
   
vk42:: t := prev_t
Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Skype dmitry_fiveg

34 (изменено: svoboden, 2018-04-25 02:57:42)

Re: Как настроить время ?

teadrinker, если бы так просто. Попробуйте нажать клавишу до 500 мс, когда нажата "2", опять нажмется "2".

35

Re: Как настроить время ?

У меня 3.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Skype dmitry_fiveg

36 (изменено: svoboden, 2018-04-25 03:09:06)

Re: Как настроить время ?

А у меня двойку набирает.
Upd: То есть по нажатию на "b", цифра всегда должна быть противоположенная.

37 (изменено: HASBULAT, 2018-04-25 03:06:04)

Re: Как настроить время ?

teadrinker Это жесть какая-то, хочется ругаться матом. Цельный день убил. Убил бы больше если не помощь svoboden и teadrinker.
Скрипт работает как надо! Огромное человеческое спасибо вам!

P.S. Я правда не могу найти описание того что вы "нагородили" после команды send. Что значит % ? А вопросительный знак "?" перед 2 : 3 ? Просто хотел бы понять работу скрипта. Спасибо!

38

Re: Как настроить время ?

Читайте:
Как записать выражение в параметр команды, требующий строчного значения?
Операторы в выражениях —> Тернарный условный оператор.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Skype dmitry_fiveg

39 (изменено: svoboden, 2018-04-26 01:44:46)

Re: Как настроить время ?

Вот доделал свой вариант:

	   #UseHook
	   
        k := 1

        vk41::
	    view := true
	    SetTimer, time, -500
	    k += 1
	    if k = 2
	    {
	    wer := false
	    view := false
	    qwe := true
	    }
	    if k = 3
	    {
	    qwe := false
	    view := false
	    wer := true
	    }
	    send % k
        if k = 3
	    k := 1
        return

	    time:
	    if k = 1 
	    {
	    k := 1
	    view := false
        qwe := false
	    wer := true
	    }
	    if k = 2
	    {	    
	    k := 1
	    view := false
	    wer := false
	    qwe := true
	    }
        return

        #if qwe
	    vk42::
	    SetTimer, time, off
	    if k = 1
	    {
	    k := 2
	    }
	    return
        #if

        #if wer
        vk42::
	    SetTimer, time, off
	    if k = 1
	    {
	    k := 1
	    }
        return
	    #if

        #if view
	    vk42::return
        #if

Так должно быть?

40

Re: Как настроить время ?

svoboden пишет:

Так должно быть?

ДА! Теперь и  "Франкенштейн" заработал .

41

Re: Как настроить время ?

svoboden пишет:

А у меня двойку набирает.
Upd: То есть по нажатию на "b", цифра всегда должна быть противоположенная.

Кажется понял, что вы имели в виду. Если нажать A и сразу следом B, а потом через полсекунды A, то мой код всегда выдаёт 2. По-моему, для ТС это некритично, но исправить несложно:

vk41::
   SetTimer, Timer, -500
   Send, % (prev_t := t := !t) ? 2 : 3
   Return
   
Timer:
   prev_t := t
   t := 0
   Return
   
vk42::
   SetTimer, Timer, Off
   t := prev_t
   Return
Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Skype dmitry_fiveg

42

Re: Как настроить время ?

teadrinker пишет:

По-моему, для ТС это не критично, но исправить несложно:

Теперь ваапче идеально!

43 (изменено: svoboden, 2018-04-26 02:25:22)

Re: Как настроить время ?

В общем вообще смешно. Нужно было всего лишь отключить таймер по клавише "B". И спрашивается, для чего было столько писать? Вот как новички могут запутать.

   vk41::
   SetTimer, time, -500
   Send, % (t:=!t) ? 2 : 3
   Return
   
   time:
   t := 0
   Return
   
   vk42::
   SetTimer, time, Off
   t := 1
   Return

44

Re: Как настроить время ?

svoboden пишет:

Нужно было всего лишь отключить таймер по клавише "B"

Неа, не всего лишь. при чередовании А и В > 500 мс сплошные 22222222.

45 (изменено: svoboden, 2018-04-26 02:10:09)

Re: Как настроить время ?

Внимательней скопируйте пример. Работает точно так же, как и все выше примеры. У меня все чередуется.

46

Re: Как настроить время ?

svoboden пишет:

Внимательный скопируйте пример. Работает точно так же, как и все выше примеры.

ТАк внимательней некуда, ctrl C - ctrl V.

HASBULAT пишет:

при чередовании А и В > 500 мс сплошные 22222222.

именно более 500мс .

47 (изменено: svoboden, 2018-04-26 02:32:04)

Re: Как настроить время ?

А сейчас скопируйте:

SetTimer, time, Off
t := 1

Или тоже не понимаете.

48 (изменено: HASBULAT, 2018-04-26 02:34:30)

Re: Как настроить время ?

svoboden пишет:

Добавил: t := 1.

Теперь тройка. А вот teadrinker  там как-то хитро это замутил, что всё работает. Ну или же твой "франкенштейн" .

49

Re: Как настроить время ?

Да, "франкенштейн" классный! Особенно эта часть:

	    if k = 1
	    {
	    k := 1
	    }

Это же новое слово в программировании!

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Skype dmitry_fiveg

50

Re: Как настроить время ?

teadrinker пишет:

Особенно эта часть:

у "К" нет шансов