NGMsoftware

NGMsoftware
로그인 회원가입
  • 매뉴얼
  • 학습
  • 매뉴얼

    학습


    C# C# .NET Core 매크로 프로그램 만들기. (마우스 클릭 드래그 2부)

    페이지 정보

    본문

    안녕하세요. 엔지엠소프트웨어입니다. 이전 시간에 마우스 클릭과 드래그 기능까지 개발했는데요. 마우스 드래그는 마우스 다운과 업으로 어느정도 커버가 가능합니다. 하지만, 대부분의 프로그램들이 마우스 다운과 업으로 드래그를 구현하기는 쉽지 않습니다. 그래서, 별도로 마우스 드래그 액션을 만들고 프로그램에서 동작하는지 테스트 해보도록 할께요. 아직 이전 시간에 알아본 내용을 읽어보지 않았다면 먼저 읽어보고 오세요^^

     

    마우스 드래그 액션은 아래와 같이 시작 좌표와 끝 좌표가 있어야 합니다.

        public class DragModel : BaseModel
        {
            private Point _start;
            private Point _end;

     

    좌표를 설정하는 방법은 마우스 클릭 만들기에서 만든 마우스 트레커 에디터를 특성으로 부여해야 합니다.

    [Editor(typeof(TypeEditor.MouseTrackingEditor), typeof(System.Drawing.Design.UITypeEditor))]

     

    user32 라이브러리의 마우스 이벤트 API를 사용하면 됩니다.

    mouse_event(MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0);

     

    활성 모드는 마우스 드래그 동작에 문제가 없습니다. 비활성으로 동작시키는게 문제인데요. 아래와 같이 드래그가 잘 동작합니다.

     

     

    녹스 앱플레이어에서 아이콘을 이동해봤는데요. 잘 동작하는걸 확인할 수 있습니다. 마우스 드래그가 아닌 다운과 업으로 테스트 했습니다. 다만, 앱플레이어에서 아이콘을 이동하려면 아이콘을 꾹 누르고 있는 시간이 필요합니다. 그래서, 업 실행하기 전에 1초의 지연을 설정했습니다. 지연이 없으면 정상 동작하지 않습니다.

    iyzPtn2.png

     

     

    이번에는 지연이 없더라도 드래그가 되는지 확인 해볼께요. 실제 마우스로 2번 드래그 해보고, 매크로로 실행했는데요. 정상 동작하지 않습니다.

     

     

    이번에는 마우스 이동을 추가하고, 스텝을 10으로 설정했습니다. 스텝은 마우스가 목표 지점까지 이동할 때 몇 단계를 거칠지에 대한 옵션입니다. 시작 위치가 0이고, 도착 위치가 100일 때 스텝이 10이면 마우스는 10픽셀씩 이동합니다. 아래 동영상처럼 마우스 이동을 추가하니 잘 동작하는군요.

     

     

    비활성 모드로 마우스 드래그를 구현하려면 약간 더 복잡합니다. 아래 그림과 같이 장치 입력 방법과 핸들 추가 액션을 추가하세요. 그리고, 장치 입력 방법 액션의 입력 방식을 비활성 모드인 PostMessage로 선택하세요. 

    IVFiz1F.png

     

     

    매크로를 실행하면 마우스가 이동하지는 않지만, 녹스 앱플레이어에서 드래그 명령이 실행되는걸 확인할 수 있습니다. 녹스 왼쪽에 드래그가 보입니다.

     

     

    이번에는 윈도우 바탕화면에서 드래그를 해볼까요? 특정 폴더를 드래그해서 다른 폴더에 넣는 동작입니다. 핸들 추가 액션에서 윈도우의 바탕화면을 선택하고, 드래그 좌표도 변경해야 합니다. 이 테스트에서는 채용 폴더를 마지막 새 폴더(5)에 넣도록 했습니다.

     

     

    여러가지 더 테스트를 해봐야겠지만, 다양하게 제공되는 속성들을 잘 활용하면 윈도우에서 실행되는 모든 프로그램에서 드래그 액션을 사용할 수 있을겁니다. 만약, 안되는 부분이 있다면 추가 개선이 필요할거 같아요. 현재까지는 문제 없이 동작하는걸 확인할 수 있었습니다.

     

    개발자에게 후원하기

    MGtdv7r.png

     

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

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

    감사합니다~

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

    댓글목록

    등록된 댓글이 없습니다.