2010-04-03 5 views
1

지정된 위치에서 마우스 클릭을 시뮬레이트 할 수있는 작은 프로그램을 작성 중입니다. 사용과 같이는 Win32 API 호출 mouse_event : 완벽하게 정상적으로mouse_event 커서가 플래시 위에있을 때 WinAPI 호출이 작동하지 않습니다.

[DllImport("user32.dll", CharSet = CharSet.Auto, CallingConvention = CallingConvention.StdCall)] 
public static extern void mouse_event(uint dwFlags, uint dx, uint dy, uint dwData, UIntPtr dwExtraInfo); 

[Flags] 
public enum MouseEventFlags : uint 
{ 
    LEFTDOWN = 0x00000002, 
    LEFTUP = 0x00000004, 
    MIDDLEDOWN = 0x00000020, 
    MIDDLEUP = 0x00000040, 
    MOVE = 0x00000001, 
    ABSOLUTE = 0x00008000, 
    RIGHTDOWN = 0x00000008, 
    RIGHTUP = 0x00000010 
} 

mouse_event((uint)(MouseEventFlags.LEFTDOWN | MouseEventFlags.LEFTUP), x, y, 0, UIntPtr.Zero); 

작품, 마우스 커서가 Flash 응용 프로그램 위에있을 때를 제외하고 . 플래시가 시뮬레이션 된 마우스 클릭을 무시하는 것 같습니다. 그 이유는 무엇일까요? 어떻게 해결할 수 있습니까?

감사합니다.

답변

1

어떤 이상한 이유로 나는 위의 P와 함께 문제를 했어, 또한

mouse_event((uint) 
(MouseEventFlags.LEFTDOWN | MouseEventFlags.LEFTUP | MouseEventFlags.ABSOLUTE), 
x, y, 0, UIntPtr.Zero); 

를 시도/호출 규칙 호출, 참조 Simulating a mouse button click in Windows

관련 문제