我正在使用c#,Visual Studio 2010用于Windows应用程序。
我想按住Ctrl键,然后在一段时间后释放它。
我尝试了这个,但它没有用。
[DllImport("user32.dll")]
static extern bool keybd_event(byte bVk, byte bScan, uint dwFlags,
UIntPtr dwExtraInfo);
public const uint KEYEVENTF_KEYUP = 0x02;
public const uint VK_CONTROL = 0x11;
// Press the Control key.
keybd_event(VK_CONTROL,0,0,0);
//release the control key
keybd_event(VK_CONTROL, 0, KEYEVENTF_KEYUP, 0);
但是我收到了这个错误
最佳重载方法匹配' ImageR.Form1.keybd_event(byte,byte,uint,System.UIntPtr)
无法转换为' uint'到'字节'
无法转换为' int'到' System.UIntPtr'
答案 0 :(得分:1)
我没有找到do SendInput
的任何好例子,http://www.pinvoke.net/default.aspx/user32.keybd_event的例子对我没用。
解决此问题的最佳解决方案是http://inputsimulator.codeplex.com/
现在就这么简单:
//Press Ctrl
InputSimulator.SimulateKeyDown(VirtualKeyCode.CONTROL);
//Release Ctrl
InputSimulator.SimulateKeyUp(VirtualKeyCode.CONTROL);