C#模拟按键操作

3
我正在寻找在C#中模拟按下右侧 Ctrl 键的方法。我知道可以模拟按下左侧的Ctrl键,但是我找不到任何关于右侧Ctrl键的内容。我需要这样做是为了模拟手动触发的蓝屏所需的按键操作。
谢谢。

8
"手动触发的蓝屏死亡(BSOD)"。等等,什么?" - Bobby
5
http://www.wikihow.com/Force-a-Blue-Screen-in-Windows - Bali C
我不知道那是令人惊叹、愚蠢还是只是剩余的调试键(最有可能是最后一种)... 不管怎样,很好知道,谢谢。 - Bobby
3
我将在我的同事电脑上启用此功能,并使用AutoHotKey模拟按键操作,以便在他输入自己的名字时触发。嘿嘿嘿嘿嘿。 - mdm
3个回答

17

您可以使用 keybd_event 事件来模拟按下右侧的 Ctrl 键。

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

public const int KEYEVENTF_EXTENDEDKEY = 0x0001; //Key down flag
public const int KEYEVENTF_KEYUP = 0x0002; //Key up flag
public const int VK_RCONTROL = 0xA3; //Right Control key code

使用方法:

keybd_event(VK_RCONTROL, 0, KEYEVENTF_EXTENDEDKEY, 0);
keybd_event(VK_RCONTROL, 0, KEYEVENTF_KEYUP, 0); 

对于其他关键的模拟,这里是虚拟按键码列表


3

1
如果您正在使用AutoHotKey,请尝试查看此处。使用{RControl},您应该会得到您想要的结果。
更新:对于.NET,请尝试查看这里获取更多信息,但据我所知,您无法发送右侧的Ctrl键。猜测您必须使用win32来完成它。

谢谢提供链接,但我想用C#从vs应用程序中实现它,这可行吗?如果不行,我会考虑AutoHotKey,谢谢。 - Bali C

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接