如何模拟在后台应用程序中按下/保持的键

时间:2014-05-06 17:52:24

标签: c# api process keypress

我想模拟一个按下几秒钟然后它被释放的按键。 你们都知道暂时按住键的效果;)

我试过这样的事情:

    [DllImport("user32.dll")]
    [return: MarshalAs(UnmanagedType.Bool)]
    static extern bool PostMessage(IntPtr hWnd, uint msg, IntPtr wParam, IntPtr lParam);

    ...

    const uint WM_KEYDOWN = 0x0100;
    const uint WM_KEYUP = 0x0101;
    intKeyCode = 'a';

    ...

    PostMessage(windowPointer, WM_KEYDOWN, (IntPtr)(intKeyCode - 0x020), IntPtr.Zero);
    Thread.Sleep(5000); // Sleep for 5 sec
    PostMessage(windowPointer, WM_KEYUP, (IntPtr)(intKeyCode - 0x020), IntPtr.Zero);

结果很容易预测。它只显示两个字母,而不是在前5秒内输入几次。

有没有人尝试过这样的事情?

0 个答案:

没有答案