이제 언리얼에서 마우스 다룰 대부분의 준비는 다된것같다.

마지막으로 윈 API로 마우스 다루기 시작

 

 

먼저 윈도우 위치 가져오는 코드

#include <Windows.h>
#include <iostream>

void GetCursorPosition()
{
    POINT cursorPos;
    if (GetCursorPos(&cursorPos))
    {
        int x = cursorPos.x;
        int y = cursorPos.y;
        // 마우스 커서 위치를 사용하여 원하는 작업 수행
        // 예: 좌표 출력
        std::cout << "Cursor position: x = "<< x << " , y = " << y << std::endl;
    }
}

int main()
{
    int duration = 5; // 프로그램 실행 시간 (초)
    int interval = 500; // 마우스 커서 위치 갱신 간격 (밀리초)

    // 일정 시간 동안 주기적으로 마우스 커서 위치 얻기
    for (int i = 0; i < duration * 1000 / interval; i++)
    {
        GetCursorPosition();
        Sleep(interval);
    }

    return 0;
}

 

 

 

실행 결과 커서 위치 잘가져옴

 

 

 

마우스 커서 이동 시키는 코드

 

#include <Windows.h>
#include <iostream>

void GetCursorPosition()
{
    POINT cursorPos;
    if (GetCursorPos(&cursorPos))
    {
        int x = cursorPos.x;
        int y = cursorPos.y;
        // 마우스 커서 위치를 사용하여 원하는 작업 수행
        // 예: 좌표 출력
        std::cout << "Cursor position: x = " << x << " , y = " << y << std::endl;
    }
}

void MoveCursorTo(int x, int y)
{
    SetCursorPos(x, y);
}

int main()
{
    int startX = 80; // 시작 x 좌표
    int startY = 80; // 시작 y 좌표
    int duration = 5; // 프로그램 실행 시간 (초)
    int interval = 500; // 좌표 갱신 간격 (밀리초)
    int step = 20; // x 좌표 증가량

    int targetX = startX;
    int targetY = startY;

    // 일정 시간 동안 주기적으로 x 좌표를 증가시켜 마우스 커서 이동
    for (int i = 0; i < duration * 1000 / interval; i++)
    {
        targetX += step;
        MoveCursorTo(targetX, targetY);
        GetCursorPosition();
        Sleep(interval);
    }

    return 0;
}

 

 

보조 모니터(2번)에서 마우스 좌클릭 우클릭 반복하며 이동하는 코드

 

#include <Windows.h>
#include <iostream>


void MoveCursorTo(int x, int y)
{
    SetCursorPos(x, y);
}

void MouseClick(int button)
{
    INPUT input = { 0 };
    input.type = INPUT_MOUSE;
    input.mi.dwFlags = button;

    SendInput(1, &input, sizeof(INPUT));
}

int main()
{
    int startX = 2500; // 시작 x 좌표
    int startY = 80; // 시작 y 좌표
    int duration = 8; // 프로그램 실행 시간 (초)
    int interval = 500; // 좌표 갱신 간격 (밀리초)
    int step = -20; // x 좌표 감소량

    int targetX = startX;
    int targetY = startY;

    // 일정 시간 동안 주기적으로 x 좌표를 감소시켜 마우스 커서 이동 후 클릭
    for (int i = 0; i < duration * 1000 / interval; i++)
    {
        targetX += step;

        MoveCursorTo(targetX, targetY);
        if (i%2 == 0)
            MouseClick(MOUSEEVENTF_RIGHTDOWN);
        else
            MouseClick(MOUSEEVENTF_RIGHTUP);
        Sleep(interval);
    }

    return 0;
}

 

 

 

 

 

 

 

 

 

 

+ Recent posts