如何使用keybd_event模拟Ctrl A + Ctrl C.

jit*_*h10 5 c# keyboard-events

如何模拟Ctrl- A+ Ctrl- C使用keybd_event

因为我在webbrowser表单上模拟ctrl a + ctrl c来复制剪贴板上的整个内容.我使用SendKeys.SendWait,但它没有复制整个内容!

Bal*_*i C 11

这应该工作

[DllImport("user32.dll", SetLastError = true)]
static extern void keybd_event(byte bVk, byte bScan, int dwFlags, int dwExtraInfo);

public const int KEYEVENTF_KEYDOWN = 0x0000; // New definition
public const int KEYEVENTF_EXTENDEDKEY = 0x0001; //Key down flag
public const int KEYEVENTF_KEYUP = 0x0002; //Key up flag
public const int VK_LCONTROL = 0xA2; //Left Control key code
public const int A = 0x41; //A key code
public const int C = 0x43; //C key code

public static void PressKeys()
{
    // Hold Control down and press A
    keybd_event(VK_LCONTROL, 0, KEYEVENTF_KEYDOWN, 0);
    keybd_event(A, 0, KEYEVENTF_KEYDOWN, 0);
    keybd_event(A, 0, KEYEVENTF_KEYUP, 0);
    keybd_event(VK_LCONTROL, 0, KEYEVENTF_KEYUP, 0);

    // Hold Control down and press C
    keybd_event(VK_LCONTROL, 0, KEYEVENTF_KEYDOWN, 0);
    keybd_event(C, 0, KEYEVENTF_KEYDOWN, 0);
    keybd_event(C, 0, KEYEVENTF_KEYUP, 0);
    keybd_event(VK_LCONTROL, 0, KEYEVENTF_KEYUP, 0);
}
Run Code Online (Sandbox Code Playgroud)

  • 请注意,KEYEVENTF_EXTENDEDKEY不会按下。没有按键按下的定义。使用0(或自行定义)。 (2认同)