2014-12-05 121 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

回答