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);
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章