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