NGMsoftware

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

    학습


    C# 매크로에서 마우스가 자연스럽게 이동할 수 있도록 변환하는 메소드.

    페이지 정보

    본문

    안녕하세요. 엔지엠소프트웨어입니다. 일반적으로 매크로 프로그램들은 마우스 클릭 기능을 가지고 있습니다. 이 때 마우스 좌표를 설정하고 클릭 명령을 내리면, 사용자가 설정한 좌표로 점프하고 클릭하게 됩니다. 이런 동작은 아무래도 기계적인 동작으로 인식되기 쉽습니다. 좀 더 인간적인(?) 동작을 원한다면 마우스가 이동하는 중간 단계가 필요하죠^^; 아래 메소드는 마우스의 현재위치에서 클릭할 위치로 자연스럽게 이동하도록 만들어줍니다.

    public static void ActiveNaturalMove(MacroPlayer player, Point endPosition, int steps, int movingDelay)
    {
        bool epp = NGM.API.Window.UseEnhancePointerPrecision();
        if (epp)
            NGM.API.Window.EnhancePointerPrecision(false);
    
        Point start = Cursor.Position;
        PointF iterPoint = start;
    
        PointF slope = new PointF(endPosition.X - start.X, endPosition.Y - start.Y);
    
        int step = 0;
        if (Math.Abs(slope.X) > Math.Abs(slope.Y))
        {
            step = (int)(slope.X / steps);
        }
        else
        {
            step = (int)(slope.Y / steps);
        }
    
        step = Math.Abs(step);
    
        slope.X = slope.X / step;
        slope.Y = slope.Y / step;
    
        for (int i = 0; i < step; i++)
        {
            iterPoint = new PointF(iterPoint.X + slope.X, iterPoint.Y + slope.Y);
            NGM.Utility.MouseKeyboardManager.MouseSimulator.Position = Point.Round(iterPoint);
    
            if (player.Option.ShowMouseEffect)
            {
                Common.MouseEffector(player, Point.Round(iterPoint));
            }
    
            System.Threading.Thread.Sleep(movingDelay);
        }
    
        NGM.Utility.MouseKeyboardManager.MouseSimulator.Position = endPosition;
    
        if (epp)
            NGM.API.Window.EnhancePointerPrecision(true);
    }

     

    개발자에게 후원하기

    MGtdv7r.png

     

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

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

    감사합니다~

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

    댓글목록

    profile_image

    삐삐님의 댓글

    no_profile 삐삐 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 작성일 Date

    NGM클래스는 뭔가요 ??