6
votes

I have a two dimensional array with coordinates and i want to make the mouse move with the specific pattern those coordinates create in a WPF application. Can you help me? I've tried the Cursor class but it will not work. Obviously I am doing something wrong.

private void SetPosition( int a, int b)
{
    this.Cursor = new Cursor(Cursor.Current.Handle);
    Cursor.Position = new Point(a, b);
}

This is the method i use the a and b are from the array. thanks in advance!

PS that method is inside an event that fires 20 times a second.

2
Please define "it will not work" in more detail. What's the pattern you expect and what's the pattern you are getting? If the cursor isn't moving at all that's also relevant information. - ChrisF
its not moving at all!! the pattern is random it does not matter. i am trying to make it move with ramdom numbers to incorporate it in a project that will feed it specific coordinates. - Kwstas
Does this answer your question? How to move mouse cursor using C#? - StayOnTarget
Given that there doesn't appear to be a WPF-specific method, this question seems to be redundant o stackoverflow.com/questions/8050825/… - StayOnTarget

2 Answers

13
votes

I'm not entirely sure if there is a better way to do it in WPF (It seems the code you are using is targeted at WinForms), but using Platform Invoke on SetCursorPos seems to do the trick:

private void SetPosition(int a, int b)
{
    SetCursorPos(a, b);
}

[DllImport("User32.dll")]
private static extern bool SetCursorPos(int X, int Y);