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);
}
개발자에게 후원하기
추천, 구독, 홍보 꼭~ 부탁드립니다.
여러분의 후원이 빠른 귀농을 가능하게 해줍니다~ 답답한 도시를 벗어나 귀농하고 싶은 개발자~
감사합니다~
추천0 비추천0
- 이전글이미지를 24bpp로 변환하는 메소드. (How to convert image to 24bit per pixel.) 21.05.08
- 다음글문자열을 직사각형으로 변환하는 방법. (How to convert a String to Rectangle.) 21.05.08