どんな理由であれ、コードが正しく動作しない... here
[DllImport("user32.dll")]
static extern bool SetCursorPos(int X, int Y);
から取られた、ということですね!私のマウスは、リモートマシン上で予想どおりに動きますが、フォアグラウンドに持ってきたアプリケーションはマウスの動きを検出していませんでした。
しかし、私は、これはmouse_event
を使用して動作させるために管理しました:
[Flags]
public enum MouseEventFlags
{
LeftDown = 0x00000002,
LeftUp = 0x00000004,
MiddleDown = 0x00000020,
MiddleUp = 0x00000040,
Move = 0x00000001,
Absolute = 0x00008000,
RightDown = 0x00000008,
RightUp = 0x00000010
}
[DllImport("user32.dll")]
private static extern void mouse_event(int dwFlags, int dx, int dy, int dwData, int dwExtraInfo);
public static void MouseEvent(MouseEventFlags value, Point position)
{
MousePoint position = position;
mouse_event
((int)value,
position.X,
position.Y,
0,
0)
;
}
[StructLayout(LayoutKind.Sequential)]
public struct MousePoint
{
public int X;
public int Y;
public MousePoint(int x, int y)
{
X = x;
Y = y;
}
}
はちょうど呼び出し、それを使用するには:
mouse_event(MouseEventFlags.Move,new MousePoint{X = YOUR_X, Y = YOUR_Y});
すべてのクレジットは、このSO answerに行きます。
私はあなたが望むものを得るためにマシン "B"のCBTフックを使う必要があると思います。 [ここ](http://stackoverflow.com/questions/4267881/cbt-hooks-in-windows-what-does-cbt-stand-for)を参照してください。 – GreatAndPowerfulOz