我有下面的代码,并知道它用于将鼠标光标移动到屏幕上的特定点。如何计算坐标以编程方式移动鼠标光标?
我不明白的是为什么X和Y坐标必须乘以65535并除以屏幕大小。
它与浮点型转换为整型有什么关系?
public void MoveMouse(PointF p)
{
if (IntPtr.Size == 8)
{
var move = new INPUT64[1];
move[0] = new INPUT64();
move[0].mi.dx = (int)(p.X * 65535/ScreenSize.Width);
move[0].mi.dy = (int)(p.Y * 65535/ScreenSize.Height);
move[0].mi.dwFlags = MOUSEEVENTF_ABSOLUTE | MOUSEEVENTF_MOVE;
SendInput(1, move, Marshal.SizeOf(move[0]));
}
else
{
var move = new INPUT32[1];
move[0] = new INPUT32();
move[0].mi.dx = (int)(p.X * 65535/ScreenSize.Width);
move[0].mi.dy = (int)(p.Y * 65535/ScreenSize.Height);
move[0].mi.dwFlags = MOUSEEVENTF_ABSOLUTE | MOUSEEVENTF_MOVE;
SendInput(1, move, Marshal.SizeOf(move[0]));
}
}
不,这是关于幻数,而不是关于代码审查。 –