mouse_event함수는 인수로 지정한 내용의 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 호출
call mouse_event(flag, x, y, cbtn, 0)

▶C# 선언
[DllImport("user32.dll")]
public static extern void mouse_event(int dwFlags, int dx, int dy, int cButtons, int dwExtaInfo);
▶C# 호출
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로 처리하여야 합니다.
ex)
VB.NET 
MOUSEEVENTF_ABSOLUTE=&H8000

C#
MOUSEEVENTF_ABSOLUTE=0x8000

dx와 dy는 화면상에 Mouse를 위치시킬 좌표를 지정합니다.
단 이 위치는 MOUSEEVENTF_MOVE와 MOUSEEVENTF_ABSOLUTE가 지정되어야 실제로
Mouse Cursor가 이동되는 효과를 볼 수 있습니다.
Mouse의 좌표 지정시 실제 Monitor화면의 해상도를 기준점으로 잡으려면 65535를 가로세로 해상도로나누고 Mouse Cursor를 위치시킬 위치를 곱하면 됩니다. 예를 들어 화면 해상도가 1024*768일 경우 (65535 / 1024) * x, (65535 /768) * y 와 같이 처리하시면 원하는 곳으로 이동하게 됩니다.
******추가사항*************
VB에서 위와 같이 해본결과 정상동작이 되질 않았슴
마우스 위치값은 해상도의 값과 동일(XP VB 6.0실험)
또한 원하는 곳으로 이동이 되질 않았음
원하는 곳으로 이동을 하기 위해선
SetCursorPos를 선언후에

setcursorpos x,y
이처럼 해주면 원하는 곳으로 이동됨

cButton인수에 MOUSEEVENTF_WHEEL을 지정하였을 경우 한번에 Scroll되는 횟수를 의미하게 되며

마지막 dwExtaInfo인수는 Mouse와 관련된 추가적인 정보값을 건네주는 인수입니다.
(dwExtaInfo에는 특별한 경우가 아니면 0으로 지정합니다. 이 인수가 사용되는 경우는 일반적인 Mouse가 아닌 여러가지 기능적 Button이 더 추가된 특수한 Mouse일 경우등에 사용됩니다.)
Mouse Event지정시에는 or 단위를 통해 여러가지 동작을 한꺼번에 지정할 수 도 있습니다.

▶VB.NET 호출
call mouse_event(&H8 Or &H10, 0, 0, 0, 0)

▶C# 호출
mouse_event(0x8 | 0x10, 0, 0, 0, 0);

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

+ Recent posts