如何在C#中按键盘按钮模拟鼠标点击

时间:2011-08-03 08:01:09

标签: c# keyboard sendkeys

我一直试图找到一种方法来以编程方式点击鼠标,但我发现的结果根据我的等级而退出了压力。我知道如何定位鼠标以及除点击之外的所有内容。我也知道有一种方法可以模拟键盘按键和按键事件。所以这让我想知道,有没有办法通过按键盘键来点击鼠标? 我想这样做是因为我正在开展一个教育项目,向初学者展示如何在计算机上执行简单的功能,比如如何创建文件或打开某些程序,所以我需要鼠标点击才能在屏幕上工作在我的应用之外。这可能吗?所有帮助将不胜感激。

2 个答案:

答案 0 :(得分:0)

您可以通过以下代码模拟鼠标点击

using System.Runtime.InteropServices;
[DllImport("user32.dll", CharSet = CharSet.Auto, CallingConvention = CallingConvention.StdCall)]
public static extern void mouse_event(long dwFlags, long dx, long dy, long cButtons, long dwExtraInfo);

    private const int MOUSEEVENTF_LEFTDOWN = 0x02;
    private const int MOUSEEVENTF_LEFTUP = 0x04;
    private const int MOUSEEVENTF_RIGHTDOWN = 0x08;
    private const int MOUSEEVENTF_RIGHTUP = 0x10;

public void DoMouseClick()
    {
        //Call the imported function with the cursor's current position
        int X = Cursor.Position.X;
        int Y = Cursor.Position.Y;
        mouse_event(MOUSEEVENTF_LEFTDOWN | MOUSEEVENTF_LEFTUP, X, Y, 0, 0);
    }

mouse_event实际上执行moouse click。

答案 1 :(得分:0)

这不是一个c#答案,但如果你只想自动化教学内容,这可能有所帮助。您可以捕获所有操作的视频并突出显示鼠标单击。一个很好的软件是Camtasia工作室。这是一个付费软件,但还有其他免费的屏幕录制软件。

如果您真的想自动实际点击鼠标,请尝试使用自动 http://www.autoitscript.com/site/autoit/

用于动画。您可以在屏幕的任何区域编写从键盘按键到鼠标单击的任何内容。

如果您想尝试一下,点击任何位置,您所要做的就是

MouseClick("primary", x-coordinate, y-coordinate, number-of-clicks) 
// number of clicks = 2 for double click
$pos = MouseGetPos()
$pos[0] // contains the x coordinate of current mouse pos
$pos[1] // contains the y coord of current position