函數功能:該函數綜合鼠標擊鍵和鼠標動作。
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函數,但是效果也貌似相同結果。
有興趣大家可嘗試一下。不過通常用人家已給定的值就足夠了。規范嘛。