函数功能:该函数综合鼠标击键和鼠标动作。
VOID mouse_event(
DWORD dwFlags, // motion and click options
DWORD dx, // horizontal position or change
DWORD dy, // vertical position or change
DWORD dwData, // wheel movement
ULONG_PTR dwExtraInfo // application-defined information );
//MSDN原话
C#使用,为了易读,用中文。
//*****************************************************************
[DllImport("user32.dll", EntryPoint = "mouse_event")]
public static extern void 鼠标事件(int 事件对应值, int X坐标, int Y坐标, int 轮子,int 信息);//*******************星号内可直接复制运用,加载命名空间即可*****************
参数1:鼠标事件,在VB与C#,要调用事件需要定义常量,赋与对应值。
参数2,参数3: 指定x,y标的目标的绝对地位或相对地位
参数4:如果dwFlags为MOUSEEVENTF_WHEEL,则dwData指定鼠标轮移动的数量。正值表明鼠标轮向前转动,即远离用户
的方向;负值表明鼠标轮向后转动,即朝向用户。一个轮击定义为WHEEL_DELTA,即120。
如果dwFlagsS不是MOUSEEVENTF_WHEEL,则dWData应为零。
参数5:指定与鼠标事件相关的附加32位值。调用函数GetMessageExtraInfo来获得此附加信息。
mouse_event函数,在C#运用与VB差不多,都需要赋相应值才能使用。
const int MOUSEEVENTF_MOVE = 0 x0001; // 移动鼠标 (十):1
const int MOUSEEVENTF_LEFTDOWN = 0 x0002; //模仿鼠标左键按下 (十):2 const int MOUSEEVENTF_LEFTUP = 0 x0004; //模仿鼠标左键抬起 (十):4 const int MOUSEEVENTF_RIGHTDOWN = 0 x0008; //模仿鼠标右键按下 (十):8 const int MOUSEEVENTF_RIGHTUP = 0 x0010; //模仿鼠标右键抬起 (十):16 const int MOUSEEVENTF_MIDDLEDOWN = 0 x0020;// 模仿鼠标中键按下 (十):32 const int MOUSEEVENTF_MIDDLEUP = 0 x0040;// 模仿鼠标中键抬起 (十):64 const int MOUSEEVENTF_ABSOLUTE = 0 x8000; //标示是否采取绝对坐标 (十):32768值是用十六进制表示的,转成十进制后也可使用。通常只用到,1,2,4,8,16,32,64.这七个事件。怎么样,看到规律了吧。
其实我也有尝试用这些值以外的常量调用mouse_event函数,但是效果也貌似相同结果。
有兴趣大家可尝试一下。不过通常用人家已给定的值就足够了。规范嘛。