【问题标题】:How to hold the Ctrl key down through code如何通过代码按住Ctrl键
【发布时间】:2012-06-06 00:45:12
【问题描述】:

我正在编写一个单元测试,如果 (Control.ModifierKeys == Keys.Control).. 我可以为运行单元的特定情况添加一个标志或其他东西测试,但是太脏了!如何通过代码将 ModifierKeys 设置为 Ctrl?我正在使用 C#.Net 4.0。

【问题讨论】:

标签: c# key modifier-key


【解决方案1】:

您可以使用 P/Invoke 调用 keybd_event 函数来合成击键。

首先声明以下内容:

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

public const uint KEYEVENTF_KEYUP = 0x02;
public const uint VK_CONTROL = 0x11;

然后,在您的测试中,使用:

// Press the Control key.
keybd_event(VK_CONTROL, 0, 0, 0);

try
{
    // Perform test.
}
finally
{
    // Release the Control key.
    keybd_event(VK_CONTROL, 0, KEYEVENTF_KEYUP, 0);
}

【讨论】:

    【解决方案2】:

    按住: Keyboard.PressModifierKeys(ModifierKeys.Control);

    发布: Keyboard.ReleaseModifierKeys(ModifierKeys.Control);

    【讨论】:

      猜你喜欢
      • 2012-03-12
      • 1970-01-01
      • 1970-01-01
      • 2020-05-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-09-16
      • 1970-01-01
      相关资源
      最近更新 更多