[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是按下。