簡體   English   中英

如何通過代碼按住Ctrl鍵

[英]How to hold the Ctrl key down through code

我正在編寫一個單元測試,如果(Control.ModifierKeys == Keys.Control),某個函數將被深入調用堆棧。我可以為運行單元測試的特定情況添加一個標志或者其他東西,但是太臟了! 如何通過代碼將ModifierKeys設置為Ctrl? 我正在使用C#.Net 4.0。

您可以使用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);
}

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

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM