본문 바로가기

이미지 매크로

RPA 매크로 - 현재 키보드가 눌린(다운) 상태인지 어떻게 알 수 있을까?

반응형

무료 매크로 프로그램 다운로드

http://ngmsoftware.com/bbs/board.php?bo_table=product1&wr_id=32 

 

엔지엠소프트웨어

엔지엠 매크로는 복잡한 반복작업을 자동화할 수 있습니다. PC 게임, 모바일 게임을 최적으로 지원하며 모든 PC 프로그램 및 업무에 적용할 수 있습니다.

www.ngmsoftware.com

#매크로 #매크로프로그램 #메크로 #g매크로 #마우스매크로 #키보드매크로 #엑셀매크로 #키매크로 #수강신청매크로 #로지텍마우스매크로 #매크로키보드 #파이썬매크로 #매크로뜻 #매크로마우스 #로지텍매크로 #ld플레이어매크로 #오토마우스매크로 #키보드마우스매크로 #오토핫키매크로 #이미지매크로 #이미지인식매크로 #하드웨어매크로 #화면인식매크로 #선착순구매매크로 #이미지서치매크로 #한글매크로

  • 엔지엠 무료: 무료 (전체 기능의 50프로)
  • 엔지엠 커뮤니티 월 이용료: 4,500원, 1년 이용료: 55,000원 (전체 기능의 80프로)
  • 엔지엠 얼티밋 월 이용료: 6,500원, 1년 이용료: 77,000원 (전체 기능의 90프로)
  • 엔지엠 엔터프라이즈 월 이용료: 9,200원, 1년 이용료: 110,000원 (전체 기능 사용)

안녕하세요. 엔지엠소프트웨어입니다. 엔지엠 RPA 매크로에는 키보드의 상태(Down 또는 Up)를 알 수 있는 조건 액션이 포함되어 있습니다. [ 키보드 상태 체크 ] 액션을 사용하면 자동화 매크로에서 특정 키보드의 키를 눌렀는지 확인할 수 있습니다. 조건 액션이므로 해당 키의 상태에따라 다른 동작을 수행할 수 있습니다. 엔지엠 RPA 매크로를 사용하시는 분들은 조건을 어떻게 사용하는지 알고 있기 때문에 단순히 키보드 상태가 체크 되는지 확인만 해보도록 하겠습니다. 아래와 같이 에디터를 실행하고, 새로운 스크립트를 하나 추가하세요.

 

 

아래 그램과 같이 키보드의 [ 키 다운 ] 과 [ 키 업 ] 사이에 키보드 상태 체크 액션을 추가하세요. 3개 액션 모두 키 코드 속성에 "TAB"을 선택하세요.

 

 

이 시나리오는 탭 키를 누르고, 탭 키가 눌린 상태인지 체크하고 탭 키를 땝니다. 그러면, 탭 키가 누른 상태에서 상태를 체크하기 때문에 결과는 True입니다. 아래 로그와 같이 [키보드 상태 체크] 액션이 시작되었습니다. 다음에 비교 결과가 True로 나옵니다.

[[New] Script 1] 스크립트가 시작되었습니다.
[키 다운] 액션이 시작되었습니다.
[키 코드] TAB
Runtime: 00:00:00.005
[키보드 상태 체크] 액션이 시작되었습니다.
비교 결과: True
Runtime: 00:00:00.004
[키 업] 액션이 시작되었습니다.
[키 코드] TAB
Runtime: 00:00:00.006
[[New] Script 1] 스크립트가 완료되었습니다.
 

 

아래와같이 키보드 상태 체크를 키 다운 위나 키 업 아래로 이동시킨 후 다시 실행 해보세요.

 

 

결과는 예상대로 비교 결과: False가 나옵니다.

[[New] Script 1] 스크립트가 시작되었습니다.
[키 다운] 액션이 시작되었습니다.
[키 코드] TAB
Runtime: 00:00:00.005
[키 업] 액션이 시작되었습니다.
[키 코드] TAB
Runtime: 00:00:00.004
[키보드 상태 체크] 액션이 시작되었습니다.
비교 결과: False
Runtime: 00:00:00.005
[[New] Script 1] 스크립트가 완료되었습니다.

 

그렇다면~ [ 키보드 다운 이벤트 ]를 사용하면 어떻게 동작할까요? 키보드 상태를 좀 더 타이트하게 잡아내려면 이벤트를 사용해야 합니다. 아래와같이 스크립트를 구성 해보세요.

 

 

이번에 테스트할 시나리오는 이렇습니다. 키보드의 탭 키가 눌렸는지 체크하는 이벤트를 하나 등록 해줍니다. 그리고, 키 다운과 키업 아래에 키보드 상태 체크 조건이 있으므로 결과가 False로 나올거라고 예상할 수 있습니다. 하지만, 결과는 True가 나오는데요. 키 다운 액션이 실행되면 이벤트가 발동하고 액션을 종료로 이동시킵니다. 그래서 키 업이 수행되지 못하고 키보드 상태 체크가 동작하고 마지막 키 업이 동작하게 됩니다. 아래 로그의 마지막 2번째를 보면 키보드 상태 체크의 결과 값이 True인것을 확인할 수 있습니다.

[[New] Script 1] 스크립트가 시작되었습니다.
[키보드 다운 이벤트] 액션이 시작되었습니다.
키보드 결과: NONE
Runtime: 00:00:00.003
[키 다운] 액션이 시작되었습니다.
[키 코드] TAB
Runtime: 00:00:00.006
아이디: 종료, [그룹(종료)] 액션이 시작되었습니다.
Runtime: 00:00:00.002
[키보드 상태 체크] 액션이 시작되었습니다.
비교 결과: True
Runtime: 00:00:00.004
[키 업] 액션이 시작되었습니다.
[키 코드] TAB
Runtime: 00:00:00.004
[[New] Script 1] 스크립트가 완료되었습니다.
 

 

이번에는 무한으로 반복되는 스크립트에서 사용자가 직접 키보드를 눌렀을 때 종료되는 예제입니다. 스크립트 구성은 아래 그림과 같고, 키보드 다운 이벤트의 감지 키는 NONE입니다. 키 코드 값이 NONE이면 모든 키에 대해 감지하게 됩니다. 특정 키만 감지하려면 키 코드를 선택하세요.

 

 

[ 지연 ]과 [ 액션 이동 ]으로 무한 반복되는 스크립트를 만들 수 있습니다. 이 무한 반복을 탈출하려면 아무키나 누르면 됩니다. 아래 동영상을 보면 지연과 액션 이동에서 무한으로 반복하고 있습니다. 실행중에 키보드의 아무 키나 누르면 키보드 다운 이벤트가 발동되고, 마지막 종료 액션으로 이동됩니다. 그리고, 스크립트가 종료되죠.

 

 

키 다운 상태가 아닌 키 업 상태도 이벤트로 등록할 수 있으며, 키보드의 상태에 따라 동작을 다양하게 만들 수 있습니다. 예를 들어 1 키를 누르면 2, 3, 4, 5가 연속해서 눌러지게 할 수 있습니다. 아래와 같이 스크립트를 구성하고 실행 해보세요.

 

 

생각한것과 다르게 동작하죠? 하지만, 잘 생각해보면 정상적으로 동작한다는걸 알 수 있습니다. 이벤트를 등록한다는건 백그라운드로 키보드의 다운을 감지하는 별도의 프로그램이 동작한다고 생각하시면 이해하기 쉽습니다. 정확하게 말하면 스레드(Thread)가 스크립트와는 별도로 동작하고 있는겁니다. 아무튼, 스크립트가 실행되면서 이벤트가 실행되고 1을 누를 때 2를 누르는 키보드 입력 액션으로 이동합니다. 키보드 입력도 키보드 다운과 업을 수행하기 때문에 키보드 다운 시점에 이벤트에 설정한 종료로 이동하고, 다시 키보드 다운이 발생하면서 무한 반복하게 됩니다.

 

 

그래서, 아래와 같이 이벤트가 한번 동작하면 [ 이벤트 삭제 ] 액션을 통해 중지 시켜야 합니다. 그래야 다음 키보드 액션들이 이벤트를 통해 다시 수행되는 일을 방지할 수 있습니다.

 

 

이번 글에서 설명하려는 내용을 넘어서서 이벤트에 대한 이해도 같이 이루어지면 좋겠습니다. 이벤트가 로직적으로 반복하면서 체크하는것을 좀 더 쉽게 해주기는 하지만, 백그라운드에서 항상 실행되고 있다보니 스크립트를 작성하면서 인지하지 못하는 문제가 발생할 수 있습니다. 동작에 대한 정확한 이해가 없으면 이벤트로 인해 스크립트가 오작동하게 되니 이점은 주의해야 합니다^^

 

[ 초보자도 쉽게 따라할 수 있는 기초 학습 강좌 보기 ]

 

원본 글 보기

http://ngmsoftware.com/bbs/board.php?bo_table=tip_and_tech 

 

엔지엠소프트웨어

엔지엠 매크로는 복잡한 반복작업을 자동화할 수 있습니다. PC 게임, 모바일 게임을 최적으로 지원하며 모든 PC 프로그램 및 업무에 적용할 수 있습니다.

www.ngmsoftware.com

#비활성매크로 #g102매크로 #철권매크로 #레이저마우스매크로 #ghub매크로 #녹화매크로 #키보드반복매크로 #로지텍마우스광클매크로 #플라스크매크로 #윈도우매크로 #비활성g매크로 #오토매크로 #자동사냥 #주식매크로 #오토핫키키보드 #오토핫키마우스 #오토핫키이미지 #지존오토 #기계식매크로 #하드웨어매크로 #무한반복매크로 #대량이메일발송매크로 #엑셀VBA매크로 #주식모니터링매크로

반응형