무료 다운로드 받기 http://ngmsoftware.com
안녕하세요. 엔지엠소프트웨어입니다. 엔지엠 에디터 6.2.1.1 버전에서 마우스, 키보드 또는 시간 관련된 다양한 이벤트들이 추가 되었습니다. 이벤트를 등록해서 사용하면 기존에 할 수 없었던 많은 부분들을 더 쉽게 처리할 수 있으며 정확한 타이밍에 원하는 스크립트를 실행할 수 있습니다. 하지만, 이벤트를 한번 등록해두면 계속해서 동작이 반복되므로 문제가 될 수 있습니다. 예를 들어서 마우스 왼쪽 다운 이벤트를 등록했다고 생각해보세요. 사용자가 마우스 왼쪽을 눌렀을 때 이벤트를 통해 이동한 위치에 마우스 클릭 액션이 있으면 어떻게 될까요? 여러분들이 예상하는것과 같이 이벤트가 한번 더 발생하게 됩니다.
엔지엠 에디터 또는 다른 프로그램에서 마우스를 클릭하더라도 이벤트는 발생하기 때문입니다. 그렇다면 마우스 다운 이벤트를 등록하면 해당 루틴 안에서는 마우스 다운 또는 마우스 클릭과 같은 액션을 사용할 수 없을까요? 그렇지는 않습니다. 등록된 이벤트를 삭제하고, 루틴을 실행한 후 다시 이벤트를 등록하면 됩니다. 다소 복잡하게 느껴질수도 있으나 개발자들도 이벤트를 추가하고, 해당 이벤트가 발생할 때 중복 또는 버블링 현상을 방지하기 위해 이벤트를 삭제했다가 다시 추가해서 사용합니다. 간단한 예제를 확인하기 위해 아래와 같이 스크립트를 작성 해줍니다. (첨부 파일)
이 스크립트를 실행하면 뭔가 의도한데로 동작하지 않고 부자연스러움을 느끼실겁니다. 이유는 간단한데요. 위에서도 언급했듯이 마우스 왼쪽과 오른쪽 다운 이벤트를 등록 후 이 이벤트로 이동한곳에 마우스 클릭이 있기 때문에 이벤트가 중복해서 발생하기 때문입니다. 또한, 마우스 다운과 업이 한쌍으로 명령을 수행하고 해제합니다. 이 때 너무 빠른 속도로 인해 마우스가 릴리즈 되기 전 이벤트가 이동하고 마우스 다운이 다시 발생합니다. 이 타이밍에 걸리면 더블 클릭과 같은 현상이 발생하기도 합니다. 좀 더 자연스러운 스크립트를 만들려면 [ 클릭 ] 액션을 [ 이동 ] 액션으로 변경해보면 됩니다.
수정한 스크립트를 실행한 후 마우스 왼쪽과 오른쪽을 클릭해보세요. 내 컴퓨터와 내 문서로 마우스가 이동하는걸 확인할 수 있습니다. 하지만, "난 클릭을 사용하고 싶은데..."라고 할 수 있겠죠? 예를 들어 왼쪽 클릭하면 연속으로 10번 더 클릭하고 싶을수도 있습니다. 마우스 광클릭이나 연타처럼요~ 우선, 스크립트를 다시 원본 상태로 설정하고 아래 그림을 참고해서 함수에 있는 이벤트 삭제 액션을 추가해줍니다. 이 액션은 이벤트에 설정한 아이디로 타겟팅해서 삭제할수도 있고, 등록된 모든 이벤트를 삭제할수도 있습니다.
이벤트를 삭제했으므로 두번째부터는 마우스를 왼쪽 오른쪽 다운하더라도 이동이 안됩니다. 삭제한 이벤트를 루틴이 끝난(마우스 클릭) 후 다시 등록해야 합니다. 여러분들도 아래 그림을 참고해서 이벤드 2개를 각각 루틴이 끝나는 액션 아래에 복사해주세요.
다시 실행해보면 정상 동작하죠? 생각해보니 이 로직에는 약간의 문제가 있습니다. 처음에 2개의 이벤트를 등록하고, 마우스 왼쪽을 클릭하면 등록된 모든 이벤트가 삭제됩니다. 그리고, 자기 자신의 이벤트 하나만 복사해서 붙여넣기 했습니다. 따라서, 마우스 오른쪽 클릭은 더이상 동작하지 않게 됩니다. 여러분들도 이렇게 되었을겁니다. 아래와 같이 이벤트를 처음과 동일하게 2개씩 등록해줘야 합니다.
전체 내용 보기 http://ngmsoftware.com
'업무 자동화 매크로' 카테고리의 다른 글
광고/홍보/마케팅 매크로 - 구글 API를 이용한 유튜브 댓글 수집기 만들기. (0) | 2021.09.22 |
---|---|
엔지엠 RPA 매크로 - 구글 API를 이용한 유튜브 댓글 수집기 만들기. (0) | 2021.09.21 |
엔지엠 RPA 매크로 - 자동으로 메일 보내는 업무 자동화 만들기. (0) | 2021.09.17 |
엔지엠 RPA 매크로 - 웹API를 사용해서 iframe에서 값 추출하는 방법. (0) | 2021.09.17 |
엔지엠 RPA 매크로 - 웹 API의 HEADLESS를 사용해서 파일을 다운로드 하는 방법. (0) | 2021.09.17 |