无法通过编程看到光标的移动

4

好的,经过一番研究并尝试了很多例子之后-

程序化地移动鼠标光标

如何使用C#移动鼠标光标?

在C#中获取鼠标位置

使用C#控制鼠标光标

http://www.blackwasp.co.uk/MoveMousePointer.aspx

然而,我感到非常沮丧,因此寻求你们的帮助。

我正在尝试以编程方式移动光标(在控制台应用程序中,使用C#)。

--> 当我读取更改后的位置时,似乎一切都很好 - 但实际上我看不到任何区别。光标的图像仍停留在原地......

我想实际看到光标在修改后的位置。

谢谢

编辑2:谢谢大家的帮助,我目前只是在工作而看不到光标移动到任何地方......因此很难获得有关其位置的任何反馈(只能猜测)。


2
你是想移动鼠标光标(这对于控制台应用程序似乎没有意义),还是想在控制台内操作文本光标? - Justin Niessner
点击此处:http://msdn.microsoft.com/zh-cn/library/system.console.setcursorposition.aspx - Sinatr
@JustinNiessner 我想创建一个程序,使鼠标光标在我的Win-OS中移动并单击不同的窗口和按钮。 - Eli
@Sinatr 已经访问了那个页面。很抱歉,似乎没有什么帮助。 - Eli
从您之前的评论中可以清楚地看出,您需要以编程方式设置鼠标位置(不是光标,也不是移动,这将让您进入其他非相关的主题)。在winforms中,您可以使用这种方式。还可以参考这个这个 - Sinatr
@Sinatr 每个方法都有效。但是 - 我实际上看不到光标,只能看到移动的症状(比如在某个地方出现的上升工具提示)。 - Eli
1个回答

4

我真的看不出有什么问题,这里是一个测试代码,它在我的电脑上运行正常(win7_64):

class Program
{
    [StructLayout(LayoutKind.Sequential)]
    public struct MousePoint
    {
        public int X;
        public int Y;
    }

    [DllImport("user32.dll", EntryPoint = "SetCursorPos")]
    [return: MarshalAs(UnmanagedType.Bool)]
    private static extern bool SetCursorPos(int X, int Y);

    [DllImport("user32.dll")]
    [return: MarshalAs(UnmanagedType.Bool)]
    private static extern bool GetCursorPos(out MousePoint lpMousePoint);

    static void Main(string[] args)
    {
        ConsoleKey key;
        MousePoint point;
        while ((key = Console.ReadKey(true).Key) != ConsoleKey.Escape)
        {
            GetCursorPos(out point);
            if (key == ConsoleKey.LeftArrow)
                point.X -= 10;
            if (key == ConsoleKey.RightArrow)
                point.X += 10;
            if (key == ConsoleKey.UpArrow)
                point.Y -= 10;
            if (key == ConsoleKey.DownArrow)
                point.Y += 10;
            SetCursorPos(point.X, point.Y);
        }
    }
}

感谢@Keith 的回答


它执行以下操作

在此输入图像描述


抱歉,它确实可以使鼠标移动,但光标实际上看不见。 - Eli
1
你试过按方向键吗?我的鼠标指针移动得很好,可以在其他窗口中自由移动。或者你所说的“光标看不见”是什么意思?你可能需要在问题中添加截图,因为你知道人们(包括我)很难理解你的意思。 - Sinatr
嗯...它确实能工作,而且非常好-但是,我仍然只看到一些幽灵光标导致工具提示出现。 - Eli

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接