Mouse Event 발생 함수

▶VB.NET 선언

Declare Sub mouse_event Lib "user32" Alias "mouse_event" (ByVal dwFlags As Integer, ByVal dx As Integer, ByVal dy As Integer, ByVal cButtons As Integer, ByVal dwExtaInfo As Integer)


▶VB.NET 호출

mouse_event(flag, x, y, cbtn, 0)


mouse_event함수의 인수중 dwFlags값은 어떤 Mouse Event를 발생시킬지 지정하는 것으로 다음과 같은 값을 건네줄 수 있습니다.

 상수 값 설명
 MOUSEEVENTF_ABSOLUTE 8000 x, y mouse의 위치값을 포함하여 event를 발생함
 MOUSEEVENTF_MOVE 1 x, y에 지정한 위치로 이동
 MOUSEEVENTF_LEFTDOWN 2 왼쪽 button down
 MOUSEEVENTF_LEFTUP 4 왼쪽 button up
 MOUSEEVENTF_RIGHTDOWN 8 오른쪽 button down
 MOUSEEVENTF_RIGHTUP 10 오른쪽 button up
 MOUSEEVENTF_MIDDLEDOWN 20 가운데 button down
 MOUSEEVENTF_MIDDLEUP 40 가운데 button up
 MOUSEEVENTF_WHEEL 800 mouse wheel 동작


표에서 값은 VB.NET의 경우 &H / C#의 경우 0x로 처리하여야 합니다.

dx와 dy는 화면상에 Mouse를 위치시킬 좌표를 지정합니다. 단 이 위치는 MOUSEEVENTF_MOVE와 MOUSEEVENTF_ABSOLUTE가 지정되어야 실제로 Mouse Cursor가 이동되는 효과를 볼 수 있습니다.

Mouse의 좌표 지정시 실제 Monitor화면의 해상도를 기준점으로 잡으려면 65535로 가로세로 해상도를 나누고 Mouse Cursor를 위치시킬 위치를 곱하면 됩니다. 예를 들어 화면 해상도가 1024*768일 경우 (65535 / 1024) * y, (65535 / 768) * y 와 같이 처리하시면 원하는 곳으로 이동하게 됩니다.

cButton인수에 MOUSEEVENTF_WHEEL을 지정하였을 경우 한번에 Scroll되는 횟수를 의미하게 되며 마지막 dwExtaInfo인수는 Mouse와 관련된 추가적인 정보값을 건네주는 인수입니다.(dwExtaInfo에는 특별한 경우가 아니면 0으로 지정합니다. 이 인수가 사용되는 경우는 일반적인 Mouse가 아닌 여러가지 기능적 Button이 더 추가된 특수한 Mouse일 경우등에 사용됩니다.)

Mouse Event지정시에는 or 단위를 통해 여러가지 동작을 한꺼번에 지정할 수 도 있습니다.

mouse_event(&H8 Or &H10, 0, 0, 0, 0)

▶VB.NET 호출

mouse_event(0x8 | 0x10, 0, 0, 0, 0);

▶C# 호출

위 예제는 Mouse 오른쪽 Button을 눌렀다가 다시 떼는 작업을 수행합니다.

이 게시물을

공유하기

SEARCH

MENU NAVIGATION