2014-12-05 117 views
-2

我正在開發一個C#應用程序,以使用Winuser.h中聲明的SendInput來模擬鼠標移動。 我對SendInput的呼叫工作正常,我可以在屏幕上移動鼠標。SendInput的鼠標位置值

我又試圖爲記錄用戶使用鼠標移動:

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

,然後通過鼠標點到SendInput。我注意到GetCursorPos獲得的鼠標值與SendInput實際放置鼠標的位置之間存在差異。例如,1300(屏幕最右側)的鼠標x位置對應於使用SendInput的靠近屏幕左側的鼠標定位。

通過GetCursorPos獲取的POINT數據與SendInput使用的座標系之間的關係是什麼?

謝謝。

蘭斯

+0

你忽略顯示任何代碼。我們不知道如何調用SendInput。也許你錯了。我們無法看到您是否檢查了錯誤。也許你可以展示一個完整的程序來展示問題。 – 2014-12-05 17:02:15

+0

api調用沒有問題,所以我沒有打擾發佈代碼。自從我找到解決方案後,GetCursorPos返回屏幕座標,sendinput需要絕對座標。這篇文章包含必要的轉換:http://stackoverflow.com/questions/8021954/sendinput-doesnt-perform-click-mouse-button-unless-i-move-cursor – Lance 2014-12-05 20:55:45

回答