windows下c#模擬鼠標點擊


c#模擬鼠標點擊

需要引用的dll

C#本身帶的類庫中沒有關於鼠標操作的函數庫,需要引用微軟的dll,在visual studio中使用 nuget添加 mshtml 即可(Microsoft.mshtml)

主要函數,及其方法參數釋義


    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using System.Runtime.InteropServices;

    namespace workhelper
    {
        class MouseHelper
        {
            [System.Runtime.InteropServices.DllImport("user32")]
            public static extern int mouse_event(int dwFlags, int dx, int dy, int cButtons, int dwExtraInfo);
            //移動鼠標 
            public const int MOUSEEVENTF_MOVE = 0x0001;
            //模擬鼠標左鍵按下 
            public const int MOUSEEVENTF_LEFTDOWN = 0x0002;
            //模擬鼠標左鍵抬起 
            public const int MOUSEEVENTF_LEFTUP = 0x0004;
            //模擬鼠標右鍵按下 
            public const int MOUSEEVENTF_RIGHTDOWN = 0x0008;
            //模擬鼠標右鍵抬起 
            public const int MOUSEEVENTF_RIGHTUP = 0x0010;
            //模擬鼠標中鍵按下 
            public const int MOUSEEVENTF_MIDDLEDOWN = 0x0020;
            //模擬鼠標中鍵抬起 
            public const int MOUSEEVENTF_MIDDLEUP = 0x0040;
            //標示是否采用絕對坐標 
            public const int MOUSEEVENTF_ABSOLUTE = 0x8000;
            [DllImport("user32.dll")]
            public static extern bool SetCursorPos(int X, int Y);
        }
    }

SetCursorPos 函數

把光標移到屏幕的指定位置。(ps:是整個屏幕的坐標,相對於屏幕左上角的絕對位置)

參數

  • X 指定光標的新的X坐標,以屏幕坐標表示。
  • Y 指定光標的新的Y坐標,以屏幕坐標表示。
    返回值
  • 如果成功,返回非0值
  • 如果失敗,返回值是0

mouse_event 函數

綜合鼠標移動和按鈕點擊。該方法包含鼠標左右移動及點擊操作。
參數

  • dwFlags 標志位集,指定點擊按鈕和鼠標動作的多種情況。此參數可以是下列值的某種組合:
VALUE MEANING
MOUSEEVENTF_ABSOLUTE dX和dY參數含有規范化的絕對坐標。如果不設置,這些參數含有相對數據:相對於上次位置的改動位置。此標志可設置,也可不設置,不管鼠標的類型或與系統相連的類似於鼠標的設備的類型如何。要得到關於相對鼠標動作的信息,參見下面備注部分
MOUSEEVENTF_MOVE 鼠標移動
MOUSEEVENTF_LEFTDOWN 鼠標左鍵按下
MOUSEEVENTF_LEFTUP 鼠標左鍵松開
MOUSEEVENTF_RIGHTDOWN 鼠標右鍵按下
MOUSEEVENTF_RIGHTUP 鼠標右鍵松開
MOUSEEVENTF_MIDDLEDOWN 鼠標中鍵按下
MOUSEEVENTF_MIDDLEUP 鼠標中鍵松開
MOUSEEVENTF_WHEEL 鼠標輪被滾動,如果鼠標有一個滾輪。滾動的數量由dwData給出
  • dx
    指定鼠標沿x軸的絕對位置或者從上次鼠標事件產生以來移動的數量,依賴於MOUSEEVENTF_ABSOLUTE的設置。給出的絕對數據作為鼠標的實際X坐標;給出的相對數據作為移動的mickeys數。一個mickey表示鼠標移動的數量,表明鼠標已經移動。
  • dy
    指定鼠標沿y軸的絕對位置或者從上次鼠標事件產生以來移動的數量,依賴於MOUSEEVENTF_ABSOLUTE的設置。給出的絕對數據作為鼠標的實際y坐標,給出的相對數據作為移動的mickeys數。
  • dwData
    如果dwFlags為MOUSEEVENTF_WHEEL,則dwData指定鼠標輪移動的數量。正值表明鼠標輪向前轉動,即遠離用戶的方向;負值表明鼠標輪向后轉動,即朝向用戶。一個輪擊定義為WHEEL_DELTA,即120。如果dwFlagsS不是MOUSEEVENTF_WHEEL,則dWData應為零。
  • dwExtraInfo
    指定與鼠標事件相關的附加32位值。應用程序調用函數GetMessageExtraInfo來獲得此附加信息

使用示例

    MouseHelper.SetCursorPos(Form1.point.X, Form1.point.Y);
    MouseHelper.mouse_event(MouseHelper.MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0);
    MouseHelper.mouse_event(MouseHelper.MOUSEEVENTF_LEFTUP, 0, 0, 0, 0);


免責聲明!

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



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