我希望能够通过代码来控制

时间:2014-11-04 00:52:57

标签: c# keyboard-hook

我正在使用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'

1 个答案:

答案 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);