C# 使用 H.InputSimulator 套件模擬鍵盤和滑鼠輸入

在之前有介紹過 C# 模擬鍵盤按鍵事件 ,並沒有使用到第三方套件,但是使用起來非常麻煩,還有一些小問題。後來筆者找到這個好用的第三方套件,要模擬鍵盤和滑鼠操作都非常容易。

安裝

先使用 NuGet 安裝 H.InputSimulator 套件,或是使用 .NET CLI 執行以下指令安裝
	
dotnet add package H.InputSimulator
    

模擬滑鼠事件

    
var mouse = new InputSimulator().Mouse;

mouse.LeftButtonDown();// 按下滑鼠左鍵
mouse.MoveMouseBy(50, 100); // 滑鼠移動相對位子 // 往右 50, 往下 100
mouse.LeftButtonUp(); // 放開滑鼠左鍵
mouse.MoveMouseTo(50000, 300); // 滑鼠移動到指定位子, x: 500, y: 300
mouse.RightButtonClick(); // 點擊滑鼠右鍵
mouse.VerticalScroll(-100); // 垂直捲動 // 往下 100
mouse.Sleep(1000); // 等待 1 秒
mouse.HorizontalScroll(100); // 水平捲動 // 往右 100
mouse.MiddleButtonClick(); // 點擊滑鼠中鍵
    

模擬鍵盤事件

    
var keyboard = new InputSimulator().Keyboard;


// 按下 Ctrl + Alt + S
keyboard
    .KeyDown(VirtualKeyCode.LCONTROL)
    .KeyDown(VirtualKeyCode.LMENU)
    .KeyDown(VirtualKeyCode.VK_S);

// 放開 Ctrl + Alt + S
keyboard
    .KeyUp(VirtualKeyCode.LCONTROL)
    .KeyUp(VirtualKeyCode.LMENU)
    .KeyUp(VirtualKeyCode.VK_S);
    
keyboard
    .KeyDown(VirtualKeyCode.LSHIFT)
    .KeyPress(VirtualKeyCode.VK_A)
    .KeyPress(VirtualKeyCode.VK_B)
    .KeyPress(VirtualKeyCode.VK_C)
    .KeyUp(VirtualKeyCode.LSHIFT)
    .Sleep(2000)
    .KeyPress(VirtualKeyCode.BACK)
    .KeyPress(VirtualKeyCode.BACK)
    .KeyPress(VirtualKeyCode.BACK);
    

組合使用

    

new InputSimulator()
    .Keyboard
    .ModifiedKeyStroke(VirtualKeyCode.LWIN, VirtualKeyCode.VK_R)
    .Sleep(1000)
    .KeyPress(VirtualKeyCode.RETURN)
    .Sleep(1000)
    .KeyDown(VirtualKeyCode.LWIN)
    .KeyDown(VirtualKeyCode.UP)
    .KeyUp(VirtualKeyCode.UP)
    .KeyUp(VirtualKeyCode.LWIN)
    .Sleep(1000)
    .Mouse
    .MoveMouseToPositionOnVirtualDesktop(100, 100)
    .RightButtonClick()
    .Sleep(1000)
    .Keyboard
    .KeyDown(VirtualKeyCode.VK_C)
    ;

    



參考資料:
Github - HavenDV/H.InputSimulator

留言