C# 模拟鼠标 键盘 的问题
最近想偷懒 批量下载一些东西 用C#启动一个软件 然后模拟鼠标单击里边的新建按钮,我的思路是:那个软件启动后在屏幕上的位置是固定的,我得到那个按钮的坐标,然后把鼠标移动到上边 模拟单击。以下是我写的,
但是好像只是定位成功了,单击没有效果。
请问各位前辈,这是因为窗口句柄的问题? 是因为当前的单击是作用于正在运行的Form1,根本没有操作我启动的那个软件?可是我启动那个软件之后,它就在最前端了啊?
以下是我已经写得,如果前辈要调试可以用QQ作替换
using System.Runtime.InteropServices;
[DllImport("user32.dll")]
static extern bool SetCursorPos(int X, int Y);
[DllImport("user32.dll")]
static extern void mouse_event(MouseEventFlag flags,int dx, int dy, uint data, UIntPtr extraInfo);
[DllImport("user32.dll")]
protected static extern IntPtr FindWindow(char[] lpClassName, char[] lpWindowName);
[DllImport("user32", CharSet = CharSet.Ansi, SetLastError = true, ExactSpelling = true)]
public static extern bool SetForegroundWindow(IntPtr hwnd);
[Flags]
enum MouseEventFlag : uint
{
Move = 0x0001,
LeftDown = 0x0002,
LeftUp = 0x0004,
RightDown = 0x0008,
RightUp = 0x0010,
MiddleDown = 0x0020,
MiddleUp = 0x0040,
XDown = 0x0080,
XUp = 0x0100,
Wheel = 0x0800,
VirtualDesk = 0x4000,
Absolute = 0x8000