2014-12-05 3 views
-2

Winuser.h에 선언 된 SendInput을 사용하여 마우스 동작을 시뮬레이트하는 C# 응용 프로그램을 개발 중입니다. SendInput에 대한 호출이 정상적으로 작동하고 화면에서 마우스를 움직일 수 있습니다.SendInput의 마우스 위치 값

[DllImport("user32.dll")] 
    public static extern bool GetCursorPos(ref POINT lpPoint); 

다음 SendInput을 마우스 포인트를 통과 : 다음 시도 무엇

사용하여 사용자의 마우스 움직임을 기록했다. GetCursorPos에서 얻은 마우스 값과 SendInput이 실제로 마우스를 배치하는 위치 사이의 불일치를 발견했습니다. 예를 들어, 1300 (화면의 오른쪽 끝)의 마우스 x 위치는 SendInput을 사용하여 화면 왼쪽 근처의 마우스 위치에 해당합니다.

GetCursorPos를 통해 얻은 POINT 데이터와 SendInput에서 사용하는 좌표계 간의 관계는 무엇입니까?

감사합니다.

랜스 다음 질문 바와 같이

+0

코드 표시를 소홀히했습니다. SendInput을 어떻게 호출하는지는 알 수 없습니다. 아마도 당신은 그것을 잘못 이해했을 것입니다. 오류를 확인했는지 여부는 확인할 수 없습니다. 아마도 당신은 문제를 보여주는 완벽한 프로그램을 보여줄 수 있습니다. –

+0

API 호출에 문제가 없으므로 코드를 게시하는 데 신경 쓰지 않았습니다. 이후 솔루션을 발견, GetCursorPos 화면 좌표를 반환하고 sendinput 절대 좌표가 필요합니다. 이 게시물에는 필요한 전환이 포함되어 있습니다. http://stackoverflow.com/questions/8021954/sendinput-doesnt-perform-click-mouse-button-unless-i-move-cursor – Lance

답변