[DllImport("user32.dll", SetLastError = true)] static extern void keybd_event(byte bVk, byte bScan, uint dwFlags, UIntPtr dwExtraInfo); public static void PressKey(Keys key, bool up) { const int KEYEVENTF_EXTENDEDKEY = 0x1; const int KEYEVENTF_KEYUP = 0x2; if (up) { keybd_event((byte)key, 0x45, KEYEVENTF_EXTENDEDKEY | KEYEVENTF_KEYUP, (UIntPtr)0); } else { keybd_event((byte)key, 0x45, KEYEVENTF_EXTENDEDKEY, (UIntPtr)0); } }
需要引入命名空间:using System.Runtime.InteropServices;
调用方法:
PressKey(Keys.ControlKey, false);
PressKey(Keys.V, false);
PressKey(Keys.V, true);
PressKey(Keys.ControlKey, true);
注意:上面代码是模拟的Ctrl+V,第一个参数指定的具体的按键,第二个参数true是松开,false是按下。