C#調用API(User32.dll),mouse_event函數詳解。


函數功能:該函數綜合鼠標擊鍵和鼠標動作。   

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函數,但是效果也貌似相同結果。

  有興趣大家可嘗試一下。不過通常用人家已給定的值就足夠了。規范嘛。

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM