如何在不同的 window/application 中设置光标的位置?

How do you set a cursor's position in a different window/application?

我正在尝试将光标位置设置为不同 window 中的一组特定坐标,但除非我移动我拥有的物理鼠标,否则鼠标永远不会在 window 上刷新。

这适用于将用户光标移动到不同 WINDOW 中的特定位置并在逻辑表达式后单击 returns true。

int x = 0;
int y = 0;
Cursor.Position = new Point(x, y);

我希望光标在 window 中实际移动,而不仅仅是在 form1 中。 该代码会将光标移动到该位置,但不会移动到 window 我当前所在的位置。

Point cursorPos = Cursor.Position;
  cursorPos.X = control.PointToScreen(coordinate).X;
  Cursor.Position = cursorPos;

正在发送 RAW 输入数据以使用鼠标。一些应用程序读取原始鼠标笔划,而其他应用程序读取虚拟鼠标笔划。

int to_x = 500;
int to_y = 300;
int screenWidth = InternalGetSystemMetrics(0);
screenHeight = InternalGetSystemMetrics(1);
// Mickey X coordinate
int mic_x = (int)System.Math.Round(to_x * 65536.0 / screenWidth);
// Mickey Y coordinate
int mic_y = (int)System.Math.Round(to_y * 65536.0 / screenHeight);
// 0x0001 | 0x8000: Move + Absolute position
Mouse_Event(0x0001 | 0x8000, mic_x, mic_y, 0, 0);
// 0x0002: Left button down
Mouse_Event(0x0002, mic_x, mic_y, 0, 0);
// 0x0004: Left button up
Mouse_Event(0x0004, mic_x, mic_y, 0, 0);```