NGMsoftware

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

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

    팁 앤 테크

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

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

    에디터 매크로를 제작할 때 파일 위치를 동적으로 설정하는 방법.

    페이지 정보

    본문

    안녕하세요. 엔지엠소프트웨어입니다. 얼마전~ 자신의 컴퓨터에서 정상적으로 동작하는 스크립트가 구매자 컴퓨터에서 정상 동작하지 않는다는 질문을 받았습니다. 아마도, 무슨 버그가 있는게 아닐까 생각했을거 같은데요. 실제 두 컴퓨터의 환경을 비교해보니 윈도우 시스템 폴더 설정이 달라서 발생된 문제였습니다. 일반적으로 윈도우를 처음 설치하고, 마이크로소프트 계정으로 로그인하면 아래 그림과 같은 폴더들이 자동으로 원드라이브에 동기화 됩니다.

    동기화 폴더를 선택하기 위한 대화 상자

     

     

    내문서와 음악, 그림, 바탕화면등등이 여기에 포함됩니다. 그런데, 저처럼 원드라이브를 사용하지 않는 컴퓨터에서 매크로를 만들고, 이미지나 파일을 내문서에 저장하면 경로가 "C:\Users\ngmas\Documents"와 같이 표시됩니다. 원드라이브 사용자는 "C:\Users\ngmas\OneDrive\문서"와 같이 표시되죠. 그래서 매크로 제작자분들이 자신의 컴퓨터 환경에서 매크로를 제작한 후 구매자에게 판매하면 정상 동작하지 않는 경우가 발생하게 됩니다. 스크립트나 이미지 또는 환경 설정 파일이나 엑셀등등... 파일의 경로가 달라져서 에러를 발생시킵니다.

    1. 출력창에 경로 문제에 대해 에러 메세지를 표시합니다.
    2. 현재 윈도우에 사용자가 설정한 경로가 존재하는지 체크해야 합니다.

    tcrNC3W.png

     

     

    이런 문제는 개발자들이 많드는 산업용 소프트웨어에서도 흔하게 발생하는 문제입니다. 그래서, 윈도우는 시스템 환경 변수를 통해 이런 문제를 해결하고 있습니다. 대부분의 개발자분들은 아래 환경 변수 화면을 자주 볼겁니다. 파이썬이나 자바 또는 노드와 같은 프로그램을 윈도우에서 쉽게 사용할 수 있기 때문입니다.

    MpwOFbB.png

     

     

    리눅스에서는 쉘에서 export PATH=%PATH:<등록할 경로>를 사용합니다. 현재 지정된 환경 변수를 확인하려면 printenv를 입력하면 됩니다. 환경 변수들의 경로를 화면에 표시하려면 echo $PATH 명령으로 확인할 수 있습니다. 리눅스는 명령어 기반이다보니 윈도우보다 약간 더 어렵게 느껴질 수 있습니다. 엔지엠 에디터와 플레이어는 옵션에서 경로를 설정 해줄 수 있습니다.

    1CIxwYQ.png

     

     

    하지만, 윈도우에서 어떤 파일을 선택한 액션은 옵션에서 설정한 폴더 위치와 관련이 없습니다. 엔지엠 스크립트와 엔지엠 이미지의 위치를 설정하는 것이기 때문입니다. 엑셀 파일이나 웹 API 또는 클래스디디, 인터셉션과 같이 외부에서 참조해야 하는 모듈은 직접 절대 경로를 사용해야 합니다. 이런 문제에서 자유로우려면~ 시스템 폴더가 아닌 루트 폴더를 사용하는게 쉽고 간단한 방법입니다. 보통은 C드라이브나 D드라이브의 루트에 파일을 두고 사용하죠^^;

    Y3rFSQF.png

     

     

    하지만~ 어떤 사용자 환경에서 매크로가 실행되더라도 내문서 위치를 포기하기 싫을 수 있습니다. 그런 경우에는 시스템 폴더 위치를 가져올 수 있는 [ 경로 처리 ] 액션을 사용하세요.

    1. 도구 상자 탭에서 응용 프로그램 카테고리를 확장한 후 경로 처리 액션 선택
    2. 더블 클릭하거나 드래그해서 스크립트에 추가
    3. 사용할 파일명 입력

    kf5BIla.png

     

     

    스크립트를 실행하면, 시스템 폴더의 경로를 확인할 수 있습니다.

    BLl2fRg.png

     

     

    경로 처리 액션으로 알아낸 시스템 폴더 위치를 변수에 저장하고, 시스템 폴더에서 파일을 가져오거나 저장하는 액션들(이미지 체크, 이미지 서치등등...)에 변수로부터 경로를 설정할해야 합니다. 그러면, 사용자마다 다른 환경에 유연하게 대처할 수 있게됩니다. 전통적인 방법은 ini 파일을 만들어서 안에 프로그램이 사용하는 경로를 직접 입력하거나 설정하는 것입니다. ini 파일은 경로뿐만 아니라 기본 셋팅에 관련된 내용들도 포함할 수 있습니다. 요즘은 이렇게 사용하지는 않기 때문에... 유연하게 모든 환경에 적응하려면 직접 입력하기 보다는 경로 처리와 같은 액션을 이용해서 스크립트를 구성하는게 좋습니다.

     

    개발자에게 후원하기

    MGtdv7r.png

     

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

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

    감사합니다~

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

    댓글목록

    등록된 댓글이 없습니다.