阅读:1649回复:0
鼠标过滤器驱动程序的坐标问题
<DIV id=read_tpc mb10?>我的目标是在鼠标过滤器驱动程序中获得当前鼠标的屏幕坐标,方法是在IRP_MJ_READ的完成例程中获得MOUSE_INPUT_DATA,但是发现在一些机器上MOUSE_INPUT_DATA.Flags为MOUSE_MOVE_ABSOLUTE,这时很容易将坐标转换成屏幕坐标。但是另一些机器上MOUSE_INPUT_DATA.Flags为MOUSE_MOVE_RELATIVE,此时我尝试先将鼠标强行移动到屏幕左上角原点(g_uAbsoluteX = g_uAbsoluteY = 0);,然后开始根据MOUSE_INPUT_DATA中的坐标移动值来累积计算当前屏幕坐标(g_uAbsoluteX += mouse.LastX,g_uAbsoluteY += mouse.LastY),结果发现累积的数值不能与屏幕实际光标位置一致。做过类似工作的朋友请指示下,MOUSE_MOVE_RELATIVE时怎样获得鼠标当前坐标?
|
|