NGMsoftware

NGMsoftware
로그인 회원가입
  • 매뉴얼
  • 팁 앤 테크
  • 매뉴얼

    팁과 테크니컬 노하우를 확인하세요.

    팁 앤 테크

    팁과 테크니컬 노하우를 확인하세요.

    본 사이트의 컨텐츠는 저작권법의 보호를 받으므로 무단 복사, 게재, 배포 등을 금합니다.

    에디터 연속된 숫자에서 최고 큰 값의 위치를 찾아서 클릭하는 매크로 만들기.

    페이지 정보

    본문

    안녕하세요. 엔지엠소프트웨어입니다. 윈도우 화면에서 아래 그림과같이 여러줄로 숫자가 있습니다. 가장 높은 수를 찾아서 클릭하는 방법에 대해 알아보도록 하겠습니다.

    sjTzP0Q.png

     

     

    첨부되어 있는 첫번째 스크립트를 열어보면 아래와 같이 구성되어 있습니다. [ OCR 체크 ] 액션으로 숫자들을 읽고, 이 숫자 배열을 저장하는 [ numbers 변수 ]가 추가되어 있습니다.

    ejBwZxK.png

     

     

    최고값 변수는 배열에서 가장 큰 값을 저장하는 변수고, 위치 변수는 최고값이 몇번째 줄에 있는지 위치를 저장하는 변수입니다. OCR 체크 액션은 그림판에서 숫자를 인식한 후 numbers 변수에 저장합니다. 아래 그림과같이 인식 영역이 설정되어 있습니다.

    2L4oJy2.png

     

     

    OCR 체크모델 선택에서 Fast를 선택하세요. 그리고, 숫자 사용True를 선택해야 더 정확하게 인식할 수 있습니다.

    tsPqitj.png

     

     

    OCR 체크가 실행되면 아래와 같이 이미지에서 숫자들을 뽑아올 수 있습니다.

    3
    7
    11
    2

     

    눈으로 보기에는 줄바꿈으로 어떤 처리를 할 수 있을거 같아 보입니다. 하지만, 프로그래밍 언어에서는 줄바꿈도 하나의 문자로 처리됩니다. 따라서, 아래와 같습니다. \n은 윈도우 시스템에서 줄바꿈을 나타내는 기호입니다. 원칙적으로는 \r\n이지만, \n만 사용해도 됩니다.

    2\n7\n11\n2

     

    [ 문자열 분리 ] 액션에서 변수 값을 가져와서 아래와 같이 배열로 만들 수 있습니다.

    weznAEp.png

     

     

    변수에 저장되어 있는 배열을 가져와서 [ 배열 데이타 찾기 ] 액션에서 정렬 방법을 Descending(내림차순)으로 선택하세요. 배열 값이 11, 7, 3, 2로 정렬됩니다. 만약, 가장 작은 숫자를 찾으려면 여기서 Ascending(오름차순)으로 변경하면 됩니다. 배열 인덱스를 보면 0으로 되어 있습니다. 배열의 숫자들을 정렬한 후 첫번째 값을 가져옵니다.

    vkQk1QU.png

     

     

    원본 배열값 변수(numbers)를 가져오고, 최고 값도 가져옵니다. 배열에서 최고 값의 위치를 찾아낼 수 있습니다.

    5zFj1lY.png

     

     

    윈도우 화면에서 숫자 목록을 뽑아낸 후 가장 큰 숫자가 몇번째에 위치해 있는지 찾는 매크로를 실행 해보세요. 아래와 같은 결과를 확인할 수 있습니다. 3, 7, 11, 2 목록에서 가장 큰 값은 11이고 위치는 2입니다. 프로그래밍에서 위치는 0부터 시작합니다. 따라서, 11의 위치는 2가 됩니다.

     

     

    위치 값을 알아냈으니 11이 있는 곳을 클릭해야 하는데요. 이 부분을 처리하는게 복잡할 수 있습니다. OCR 체크 영역의 시작 위치에서 각각의 숫자 높이를 위치 값과 곱해서 더해야 합니다. 이를 수식으로 나타내면 아래와 같습니다. 마지막에 1을 더한 이유는 위치 인덱스가 1부터 시작해야 하기 때문입니다. 좀 더 정확하게 클릭하려면 숫자 높이는 2로 나눠야 합니다. 그래야 가운데를 클릭하기 때문입니다. 사실 더 복잡한 내용이긴 하지만, 간단하게는 이렇게 표현할 수 있습니다.

    숫자 시작 위치 + 숫자 높이 * (위치 + 1)

     

    [ 마우스 클릭 ] 액션으로 숫자 위치를 알아냅니다.

    pqzLxJQ.png

     

     

    [ 파이썬 코드 실행 ] 액션을 추가하고, 수식을 정리 해봅시다. 오토핫키가 더 편하다면 [ 오토핫키 코드 실행 ] 액션을 사용해도 됩니다. 물론, [ C# 코드 실행 ]도 상관 없습니다. 하지만, 복잡한 수식을 액션 하나 하나 추가하면서 처리하기에는 많이 복잡합니다. 좀 더 편리하게 매크로를 작성하려면 간단한 수식 처리정도는 알아두시는게 좋을겁니다^^

    y0KCSxx.png

     

     

    마지막으로 찾은 최고 큰 값의 위치를 클릭할 수 있도록 변수에 저장된 좌표를 가져와서 클릭하게 합니다.

    bOyGhCk.png

     

     

    완성된 매크로를 실행 해보세요.

     

     

    아래와 같이 숫자를 더 추가한 후 다시 테스트 해보겠습니다.

    NLCaact.png

     

     

    X 좌표 위치와 OCR 체크 영역을 다시 잡은 후 다시 실행 해보세요.

     

     

    내용이 다소 복잡한면이 없지않아 있지만, 각각의 액션들을 하나씩 잘 살펴보면 왜 이렇게 만들었는지 이해할 수 잇을겁니다. 첨부되어 있는 스크립트를 참고하여 원하는 업무 자동화를 만들어보세요. 궁금한 내용은 [ 고객 서비스 단톡방 ]에 물어보시면 답변 해드리겠습니다^^

     

    개발자에게 후원하기

    MGtdv7r.png

     

    추천, 구독, 홍보 꼭~ 부탁드립니다.

    여러분의 후원이 빠른 귀농을 가능하게 해줍니다~ 답답한 도시를 벗어나 귀농하고 싶은 개발자~

    감사합니다~

    • 네이버 공유하기
    • 페이스북 공유하기
    • 트위터 공유하기
    • 카카오스토리 공유하기
    추천0 비추천0

    첨부파일

    댓글목록

    등록된 댓글이 없습니다.