오토핫키 커뮤니티

질문
2019.10.23 11:02

setTimer 질문드립니다

조회 수 145 추천 0 댓글 6

라벨에서 실행되는 코드가 정상작동하지 않을 때 다음 레벨을 진행하고 싶습니다.


각 라벨에서 setTimer 시간을 초기화 하는 것도 궁금합니다.


여러 개의 라벨에서 하나의 setTimer을 구현하고 싶은데 가능할런지요?


다음 예는 2초마다 다음레벨로 이동하는 코드입니다.


checktime:

counttime := counttime +1

if counttime >= 2

{

라벨 := 라벨 + 1

goto, 라벨%라벨%

}

return


F4::

라벨1:

setTimer, checktime, 1000

라벨 = 1

counttime = 0

진행코드

return


라벨2:

counttime = 0

진행코드
return

라벨3:
.
.
.
라벨4:
.
.
.


이렇게 진행했을 시 라벨2로는 넘어가지만 라벨3으로는 진행되지 않습니다.

그래서 차선책으로 진행한 코드는 다음과 같습니다.


checktime1:

counttime := counttime +1

if counttime >= 2

{

라벨 := 라벨 + 1

goto, 라벨%라벨%

}

return


F4::

라벨1:

setTimer, checktime1, 1000

라벨 = 1

counttime = 0

진행코드

return


라벨2:

setTimer, checktime1, Off

setTimer, checktime2, 1000

counttime = 0

진행코드
return

라벨3:
.
.
.
라벨4:
.
.
.
이렇게 해도 가능할 듯 하나 코드가 길어지게 되어 관리에 어려움이 예상됩니다.

좋은 첨언 부탁드립니다. 행복한 하루되세요^^

  • 할거엄따구 2019.10.24 18:42

    처음 코드로 실행했을때 문제 없이 실행이 되네요.

  • Hangoon 2019.10.29 09:26

    F4::

    라벨 = 0

    counttime = 0

    TimeS:=A_TickCount

    sleep, 1000

    Loop

    {

    counttime := counttime +1

    if counttime >= 2

    {

    라벨 := 라벨 + 1

    gosub, 라벨%라벨%

    counttime = 0

    }

    sleep,1000

    }

    return

    라벨1:

    msgbox, % "라벨1 " TimeS - A_TickCount

    TimeS:=A_TickCount

    return


    라벨2:

    msgbox, % "라벨2 " TimeS - A_TickCount

    TimeS:=A_TickCount

    return


    라벨3:

    msgbox, % "라벨3 " TimeS - A_TickCount

    TimeS:=A_TickCount

    return

  • 우리형 2019.10.29 17:58
    오랜만에 뵙습니다. 그 동안 잘 지내셨죠?
    답변 감사드리고 하시는 모든 일 번창하시길 기원합니다^^
  • 우리형 2019.10.30 15:30
    코드를 적용해보니..
    gosub은 return을 만나야하는데...
    각 라벨 코드에서 loop로 돌는 중 오류가 발생하면 역시 문제 해결이 되지 않네요..ㅠ
  • Hangoon 2019.10.31 14:29

    예 오랜만이지요 ㅎㅎ

    각 라벨 내부에 루프가 있는지는 몰라서 저렇게 했는데요,

    저 부분은 사실 스레드에 대한 이해가 좀 있으셔야 할 것 같습니다.


    제가 좀 이해가 안되는데 f4를 눌렀을때 2초마다 다른 라벨을 실행시키고 싶으신거지요?
    라벨1에서 무한루프를 만나서 수행 중에 2초가 되면 그 동작을 중지하고 라벨2를 실행하고 싶으신건가요?
    그렇다면 각 라벨에서 2초 후에 동작을 정지하게끔 해서는 안되는건가요?

    본문의 방식은 라벨1루프 수행 중 정지 -> 라벨2루프가 인터럽트 -> 라벨3루프가 인터럽트 이런 방식인데
    한번 기동된 스레드가 종료없이 다른 스레드에 인터럽트되고 이런 방식의 중첩이 반복되면 스크립트가 오류가 나버리거든요

  • 우리형 2019.11.04 16:06
    F4::
    Loop
    {
    gosub, label1
    sleep, 1000
    gosub, label2
    sleep, 1000
    gosub, label3
    sleep, 1000
    gosub, label4
    sleep, 1000
    }
    return

    label1:
    loop
    {
    코드
    }
    loop
    {
    코드
    }
    loop
    {
    코드
    }
    return

    label2:
    loop
    {
    코드
    }
    loop
    {
    코드
    }
    loop
    {
    코드
    }
    return

    label3:
    loop
    {
    코드
    }
    loop
    {
    코드
    }
    loop
    {
    코드
    }
    return

    label4:
    loop
    {
    코드
    }
    loop
    {
    코드
    }
    loop
    {
    코드
    }
    return

    현재 사용하고자 하는 코드는 위와 같습니다.
    각 라벨 및 루프안에서 오류가 발생할 경우(이미지를 찾지 못하거나 하는..)
    한 라벨 안에서 루프를 탈출 시키면 결국은 다음 라벨로 넘어가게 할려는 것이 목표입니다.
    한군 님이 알려주신 A_TickCount를 기반으로 이런 방법도 가능할런지 모르겠습니다.

    startTime:=A_TickCount
    F4::
    Loop
    {
    gosub, label1
    sleep, 1000
    gosub, label2
    sleep, 1000
    gosub, label3
    sleep, 1000
    gosub, label4
    sleep, 1000
    }
    return

    label1:
    loop
    {
    if (A_TickCount-startTime>시간지정)
    {
    break
    }
    코드
    }
    loop
    {
    if (A_TickCount-startTime>시간지정)
    {
    break
    }
    코드
    }
    .
    .
    .
    .
    .
    반복
    .
    .
    .

List of Articles
분류 제목 글쓴이 최근변경 추천
질문 smart gui 질문이에요~ 3 올드휴고 2015.03.12 0/0
질문 Sleep 에 Edit창에 입력한 값을 적용하려고합니다. 5 우리강아지 2016.05.19 0/0
질문 sleep 시간 질문 1 응애제니 2022.11.01 0/0
질문 sidesync 이미지를 못찾네요 복권상인 2016.08.23 0/0
질문 Shell.Explorer 새로고침? 13 _Crash 2015.04.21 0/0
질문 shell.Exec관련 고수님들 답변좀 부탁드립니다. 2 덩구리얌 2016.02.15 0/0
질문 Settimer를 활용할려고 하는데 잘안되네요 1 스웨이스 2016.11.01 0/0
질문 settimer는 그라벨이 다끝날때까지 대기하나요? 1 adde 2017.09.18 0/0
질문 settimer 하나만 알려주실분?? 3 급홍어감별사 2018.07.05 0/0
질문 settimer 초기화질문 34 스피릿치 2015.09.01 0/0
질문 setTimer 질문드립니다 6 우리형 2019.11.04 0/0
질문 settimer 정확도 및 작동관련 Flexy 2016.11.17 0/0
질문 Settimer 실행 중에 프로그램 강제 종료하면 Rabbit 2019.05.17 0/0
질문 settimer 를 여러게 사용시 질문!!! 8 파더 2015.02.02 0/0
질문 settimer 를 돌릴껀데 진행에 방해받지않게 돌릴수있을... 4 _Crash 2015.07.18 2/0
질문 settimer 도와주세요 2 슬러그 2019.06.26 0/0
질문 setimer는 활성 명령어 인가요? 3 T7GG 2015.09.15 0/0
질문 sendraw 명령어가 모모창에서는 먹히지 않는데 방법 아... 1 더러럭배 2018.05.30 0/0
질문 SendMessage 또는 PostMessage 로 Gui를 Disable이 가... 1 타치코마 2016.03.10 0/0
질문 send 와 sendinput 이 구체적으로 뭐가 다른걸까요 2 작은돼지 2022.12.14 0/0
Board Pagination Prev 1 ... 171172173174175176177178179 ... 209 Next
/ 209

전체 최신 인기글

전체 주간 인기글