inputsimulator - Windows Input Simulator
窗体输入模拟器提供一个基于 win32 SendInput 方法的 模拟键盘鼠标输入的.net 接口。windows 输入模拟器可用于 WPF、windows 窗体和控制台应用程序, 实现模拟任意按键。
使用Nuget添加引用
install-Package InputSimulator
示例
例子1:单一按键
public void PressTheSpacebar() { InputSimulator.SimulateKeyPress(VirtualKeyCode.SPACE); }
例子2:按键按下和放开
public void ShoutHello() { // Simulate each key stroke InputSimulator.SimulateKeyDown(VirtualKeyCode.SHIFT); InputSimulator.SimulateKeyPress(VirtualKeyCode.VK_H); InputSimulator.SimulateKeyPress(VirtualKeyCode.VK_E); InputSimulator.SimulateKeyPress(VirtualKeyCode.VK_L); InputSimulator.SimulateKeyPress(VirtualKeyCode.VK_L); InputSimulator.SimulateKeyPress(VirtualKeyCode.VK_O); InputSimulator.SimulateKeyPress(VirtualKeyCode.VK_1); InputSimulator.SimulateKeyUp(VirtualKeyCode.SHIFT); // Alternatively you can simulate text entry to acheive the same end result InputSimulator.SimulateTextEntry("HELLO!"); }
例子3:修饰按键 比如CTRL-C
public void SimulateSomeModifiedKeystrokes() { // CTRL-C (effectively a copy command in many situations) InputSimulator.SimulateModifiedKeyStroke(VirtualKeyCode.CONTROL, VirtualKeyCode.VK_C); // You can simulate chords with multiple modifiers // For example CTRL-K-C whic is simulated as // CTRL-down, K, C, CTRL-up InputSimulator.SimulateModifiedKeyStroke(VirtualKeyCode.CONTROL, new [] {VirtualKeyCode.VK_K, VirtualKeyCode.VK_C}); // You can simulate complex chords with multiple modifiers and key presses // For example CTRL-ALT-SHIFT-ESC-K which is simulated as // CTRL-down, ALT-down, SHIFT-down, press ESC, press K, SHIFT-up, ALT-up, CTRL-up InputSimulator.SimulateModifiedKeyStroke( new[] { VirtualKeyCode.CONTROL, VirtualKeyCode.MENU, VirtualKeyCode.SHIFT }, new[] { VirtualKeyCode.ESCAPE, VirtualKeyCode.VK_K }); }
例子4:模拟文字输入
public void SayHello() { InputSimulator.SimulateTextEntry("Say hello!"); }
检测按键的不同状态
public void GetKeyStatus() { // Determines if the shift key is currently down var isShiftKeyDown = InputSimulator.IsKeyDown(VirtualKeyCode.SHIFT); // Determines if the caps lock key is currently in effect (toggled on) var isCapsLockOn = InputSimulator.IsTogglingKeyInEffect(VirtualKeyCode.CAPITAL); }
摘自:http://inputsimulator.codeplex.com/
连接:http://wpfkb.codeplex.com/