私は単体テストを書いていますが、(Control.ModifierKeys == Keys.Control)の場合、特定の関数がスタックの奥深くで呼び出されます。単体テストを実行する特定のケースにフラグなどを追加できますが、汚れすぎです!コードを使用してModifierKeysをCtrlに設定するにはどうすればよいですか?C#.Net4.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 に答える