Autohotkey#47 Notepad++에서 Autohotkey 스크립트 디버깅하기

Поделиться
HTML-код
  • Опубликовано: 18 сен 2024
  • 지난번에 SCITE4Autohotkey로 디버깅하는 방법에 대해 소개해 드렸는데, 이번에는 Notepad++로 디버깅하는 방법을 알려 드리겠습니다. 전쟁에 임하는 군인이 무기를 잘 다뤄야 하듯이, 프로그래머는 디버깅에 익숙해 져야 합니다. 저는 문돌이인데요. 그럼에도 불구하고 오토핫키 스크립트를 만져야 한다면 프로그래머입니다. 따라서 본 영상을 통해 디버깅을 잘 하도록 숙지하시기 바랍니다. text버전은 아래에서 참고하세요.
    autohotkey4aut...

Комментарии • 6

  • @you-first
    @you-first 2 года назад

    선생님 궁금한게 있는데요
    마우스왼쪽버튼을 F1키에 할당했더니(#n 같은 특수키와 알파벳의 조합으로해도)
    왼쪽마우스가 클릭되고 끝나는게 아니라
    우측버튼도 곧바로 클릭되는것과 같은 현상이 일어납니다
    따라서 그 팝업창을 따로 지워줘야만하는 일이 벌어지는데 이 문제를 어떻게 해결해야할까요
    정말 오토핫키 마우스버튼 좌측에 관한 영상은 많이 본것 같은데 그에 대한 해답이 없는것 같습니다

    • @mentang
      @mentang  2 года назад

      질문만으로는 상황이 충분히 이해가 안 됩니다. 스크립트를 올려주시면 검토해 보겠습니다.

    • @you-first
      @you-first 2 года назад

      @@mentang 우측 마우스버튼 누르면 창 하나 뜨잖아요 배경화면에서 클릭해도 뜨고 각종사이트에서 우측마우스클릭해도 무슨 창같은게 뜨잖아요
      오토핫키로 좌측마우스버튼 클릭 명령을하면 클릭도되면서 방금 말씀드린 창이 함께떠요 저는 그냥 마우스클릭만됐으면 좋겠는데요.....

    • @mentang
      @mentang  2 года назад +1

      스크립트를 보여 주셔야 원인 파악을 하는데, 설명만 듣고서 유추되는 경우는 다음과 같이 return을 빼먹은 경우입니다. 혹시나 비슷한 현상인지 확인해 보세요.
      F1::
      ;Msgbox F1키가 눌려서 Mouse Left Click동작합니다.
      MouseClick, left
      ;return
      F2::
      ;Msgbox F2키가 눌려서 Mouse Right Click동작합니다.
      MouseClick, right
      return
      우선 F1과 F2에 각각 마우스 왼쪽과 오른쪽을 할당해 놓고서 MouseClick, right 줄에 중단점(breakpoint)을 설정해 보세요. Notepad++에서 잘 안 되면 SCITE에서 디버깅해 보세요. 위의 예처럼 F1키의 마지막에 return이 주석처리 되어 있으면 F1을 눌러도 F2쪽까지 실행이 됩니다. F1이 실행되는 마지막에 return을 살려 놓으면 정상적으로 F1, F2에 따라서만 동작이 됩니다. MSGBOX의 경우 사람이 확인을 눌러야 되서, 연달아 뜨는 동작으로 확인이 되지는 않았습니다. F1의 마지막에 return이 없을 경우, 중단점으로 잡으면 F1, F2 어떤 키를 눌러도 F2쪽까지 실행이 됩니다. 만약 이런 경우가 아닌데 그런 현상이 나온다면 글쎄요. 스크립트 보기 전까지는 판단이 안 될듯 합니다.

    • @you-first
      @you-first 2 года назад

      @@mentang 와아 감사합니다
      원인이 return 이거 사용안해서 그랬네요
      이제 아주 정상적으로 잘됩니다 ㅎ
      완전 초보인데 너무 감사합니다!
      아참 근데 return 키는 명령이 끝날때마다 사용해줘야 하나요?

    • @mentang
      @mentang  2 года назад +1

      원인이 파악되어 다행입니다. 특정키나, 함수등 개별로 동작되어야 하는 경우 마지막에는 return을 사용하셔야 합니다. 그렇지 않으면 return만날때까지 계속 수행합니다.