How do I set the position of the mouse cursor from

2020-07-09 07:15发布

I've found many articles on how to set the mouse position in a C# windows forms project - I want to do this in a console application. How can I set the absolute mouse position from a C# windows console application?

Thanks!

Hint: it's not Console.setCursorPosition, that only sets the position of the text cursor in the console.

4条回答
做个烂人
2楼-- · 2020-07-09 07:38

This is an old thread, but for the sake of completion it can be done this way...

use System.Runtime.InteropServices;

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

then in method whatever position you wish e.g.

  SetCursorPos(500, 500);
查看更多
等我变得足够好
3楼-- · 2020-07-09 07:40

Inside your console application, add a reference to System.Windows.Forms.dll and use the other techniques you've read about. The choice of console vs windows exe only impacts the PE header (and maybe the default code template, but you can hack that trivially); you can still use the full framework in a console exe.

The mouse you want to control is in windows, not the console.

查看更多
相关推荐>>
4楼-- · 2020-07-09 07:46

Fixed little mistake in Chaz unswer:

using System.Runtime.InteropServices;


namespace ConsoleImageWorker
{
    public static class Mouse
    {

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

        public static void SetCursorPosition(int x, int y)
        {
            SetCursorPos(x, y);
        }
    }
}

After that in any class you can just call:

Mouse.SetCursorPosition(100, 100);
查看更多
男人必须洒脱
5楼-- · 2020-07-09 07:50

You can simply assign to Cursor.Position.

However, in a console application you will need to add references to the WinForms assemblies because console application projects do not include references to WinForms by default.

You will need to add System.Windows.Forms and System.Drawing, the latter to gain access to the Point class.

查看更多
登录 后发表回答