2012-09-23 56 views
1

我需要將鼠標懸停消息發送到窗口中的特定點(窗口是一個Flash程序),而不用移動實際的鼠標。模擬鼠標懸停在C#上使用user32.dll在flash窗口

我正在使用mouse_event進行左鍵單擊。

目前我正在將實際的鼠標移動到位置上,我希望模擬窗口上的懸停事件),但之後我再也無法控制鼠標,並且執行諸如停止該程序的操作非常困難因爲程序全部控制鼠標。

回答

0

我寫了一些東西,我得到光標位置之前,並在點擊後恢復它。似乎工作。

我不知道我是否可以完全避免光標移動,因爲這將是絕對的解決方案。

public static void LeftClick(Point position) 
    { 
     Point cursorPosition; 
     GetCursorPos(out cursorPosition); 

     MoveMouseTo(position.X, position.Y); 
     mouse_event((int)(MouseEventFlags.LEFTDOWN | MouseEventFlags.LEFTUP | MouseEventFlags.ABSOLUTE), position.X, position.Y, 0, IntPtr.Zero); 

     SetCursorPos(cursorPosition.X, cursorPosition.Y); 
    }