• 2013. 5. 12.

    by. 별머루

      
      

    오토핫키(Autohotkey) 강좌 #3 - Return 함수

      

    오토핫키(Autohotkey) 강좌 #3 - Return 함수

     

     

     

     

     

    이번 포스팅에선 오토핫키의 Return 함수에 대해 알아보겠습니다.

    Return 함수는 오토핫키를 사용하면서 거의 필수 불가결 하게 사용하는 함수 입니다

    사이트의 레퍼런스 내용을 한번 볼까요?

     

     

    Returns from a subroutine to which execution had previously jumped via function-call, Gosub, Hotkey activation, GroupActivate, or other means.

     

    Return [, Expression]

    Parameters

    Expression

    This parameter should be omitted except when return is used inside a function.

    Since this parameter is an expression, all of the following are valid examples:

    return 3
    return "literal string"
    return MyVar 
    return i + 1
    return true  ; Returns the number 1 to mean "true".
    return ItemCount < MaxItems  ; Returns a true or false value.
    return FindColor(TargetColor)

    Known limitation: For backward compatibility and ease-of-use, the following two examples are functionally identical:

    return MyVar
    return %MyVar%

    In other words, a single variable enclosed in percent signs is treated as a non-expression. To work around this, make it unambiguously an expression by enclosing it in parentheses; for example: return (%MyVar%)

    Remarks

    If there is no caller to which to return, Return will do an Exit instead.

    Related

    Functions, Gosub, Exit, ExitApp, GroupActivate

    Example

    #z::
    MsgBox The Win-Z hotkey was pressed.
    Gosub MySubroutine
    return
       
    MySubroutine:
    Sleep 1000
    return  

     

     

    뭔가 복잡해 보이는군요 ~   하지만 전혀~~~~!!!! 복잡할건없습니다

    Return 오토핫키에서의 이 함수는 말그대로 돌아가다, 돌아가라 의 뜻을 가지고 있습니다

    예제를 한번 볼까요?

     

    Z::

    Msgbox the Winz-z hotkey was pressed

    gosub MySubroutine

    Return

     

     

    Mysubroutine:

    Msgbox the Winz-z hotkey was pressed [sub]

    sleep 1000

    return

     

    다른내용은 일단 재쳐두고 Return 에 집중 합시다.

    여기서 Return 은 단순히 Z:: 를 실행하고 반환한다는 의미입니다.

    엄청 단순하죠? 잘 모르시겠다구요? 소스를 한번 해석해 봅시다.

     

    z키를 누르면 메세지박스를 띄워준다. 내용은 "Win-z ...~~ pr"

    MySubroutine 으로 이동 (Gosub 에 대해선 추후 포스팅 하겠습니다.)

    Return 한다. (되돌아간다)

    즉 메세지박스를 한번 띄우고 서브루틴으로 가서 1초의 딜레이를 주고다시 처음으로 돌아간다는 겁니다.

     

     

     

    이런식으로 말이죠. (서브루틴 실행 여부를 확인하기 위해 메세지박스를 추가했습니다 뒤에 [sub] 보이시죠?

    이렇게 간단한 기능인데 ? 하면서 쉽게 생각하시진 마세요. 이유는 즉!

    Return 함수 뒤에는 옵션으로 "식"이 붙는다는 점이 중요합니다. 단순히 반환만 하는게 아니고 함수뒤에 일정 조건을 걸수 있다고 생각하시면 됩니다.

     

    간단하게 예를들면 조건문 사용후 값이 참일 경우 Return, 0 아닐경우는 Return, 1 이런식으로 반환되는 값을 바꿀수도 있죠. 힘들게 조건문 짜서 값을 일일이 따로 지정해 보내줄 필요없이 Retun 함수만 이용하면 쉽다는 거!! 꼭 알고 가셔야 됩니다. 위의 레퍼런스에서도 보시면 알겠지만 뒤에 단순히 값만 넣을수 있는건 아닙니다. 조건을 넣을수도 있고 특정 오토핫키의 함수를 넣을수도 있죠.

     

    간단해 보여서 그냥 쉽게 넘어갈수 있는 함수 "Return"  하지만 조금만 응용이 된다면 활용도는 200% ~ 300% 가 되어주는 함수 입니다. 저도 처음 오토핫키를 접했을땐 그냥 쉽게 생각하고 넘어갔다가 나중에 가서야 제 기능을 알게되서 힘들었던 적이 ^^;

     

    포스팅을 마치면서 ~

     

    오토핫키를 사용하는데 있어 기본적이지만 필수인 함수가 꽤 많습니다. Return이 그런 함수죠. 쉽게 보면 쉬운 함수지만 어렵게 보면 매우 어려운 함수가 됩니다. 하지만 처음부터 제 기능을 옳게 알고 넘어가면 나중에 도움이 정말 많이 된답니다.

     

    귀찮으시더라두 예제를 오토핫키로 적용해서 한번씩 꼭 해보세요. 다 나중에 도움이 됩니다 ^^