我正在编写一个单元测试,如果(Control.ModifierKeys == Keys.Control)..我可以为运行单元测试的特定情况添加一个标志或其他东西,但是在堆栈深处将调用某个函数太脏了!如何通过代码将 ModifierKeys 设置为 Ctrl?我正在使用 C#.Net 4.0。
问问题
4795 次
2 回答
4
您可以使用 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);
}
于 2012-05-31T18:32:59.490 回答
0
按住:Keyboard.PressModifierKeys(ModifierKeys.Control);
释放:Keyboard.ReleaseModifierKeys(ModifierKeys.Control);
于 2013-02-26T19:37:54.567 回答