我该如何在程序中触发鼠标的左键点击事件?谢谢。
编辑:该事件不是直接在按钮上触发的。我瞄准的是Windows平台。
编辑:该事件不是直接在按钮上触发的。我瞄准的是Windows平台。
执行鼠标点击:
[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 static void DoMouseClick()
{
mouse_event(MOUSEEVENTF_LEFTDOWN | MOUSEEVENTF_LEFTUP, 0, 0, 0, 0);
}
要将光标移动到所需位置:
[DllImport("user32.dll")]
static extern bool SetCursorPos(int X, int Y);
public static void MoveCursorToPoint(int x, int y)
{
SetCursorPos(x, y);
}
https://web.archive.org/web/20140214230712/http://www.pinvoke.net/default.aspx/user32.sendinput
使用Win32 API发送输入。
更新:
由于我不再使用Win32 API,因此当平台更改或网站不可用时,我将不会更新此答案以使其正确。由于此答案甚至不符合Stackoverflow标准(不包含答案本身,而是链接到一个外部的、现在已失效的资源),因此没有必要给它任何分数或花费更多时间。
相反,请查看Stackoverflow上的这个问题,我认为它是重复的:
UINT
和INPUT[]
下面放了一条线。我发现没有名为UINT的类,但我可以将其更改为UInt32。但是我不知道如何相应更改INPUT[]
以使其正常工作。 - barlop