使用SendKeys发送Windows密钥

我正在研究C#中的快捷方式。 我成功使用SendKeys实现了Ctrl,Alt和Shift。

像这样;

Ctrl + C

System.Windows.Forms.SendKeys.SendWait("^c"); 

Alt + F4

 System.Windows.Forms.SendKeys.SendWait("%{F4}"); 

但是我不能用SendKeys发送“Windows Key”。 我试过ex: Win + E.SendWait("#e")但它不起作用。 我应该使用什么而不是“#”?

谢谢。

确定你真正想要的是这个: http : //inputsimulator.codeplex.com/

这已经完成了将Win32 SendInput方法暴露给C#的所有艰苦工作。 这允许您直接发送Windows密钥。 这是经过测试和运作的:

InputSimulator.SimulateModifiedKeyStroke(VirtualKeyCode.LWIN, VirtualKeyCode.VK_E);

请注意 ,在某些情况下,您希望专门将密钥发送到应用程序(例如ALT+F4 ),在这种情况下使用Form库方法。 在其他情况下,您希望将其一般发送到操作系统,使用上面的内容。


将此保留在此处以供参考,它将无法在所有操作系统中运行,并且不会始终按您的需要运行。 请注意,您正尝试将这些击键发送到应用程序,操作系统通常会提前拦截它们。 在Windows 7和Vista的情况下,太早(在发送E之前)。

SendWait("^({ESC}E)")Send("^({ESC}E)")

请注意: http : //msdn.microsoft.com/en-us/library/system.windows.forms.sendkeys.aspx

要指定在按下其他几个键时按住SHIFT,CTRL和ALT的任意组合,请将这些键的代码括在括号中。 例如,要指定在按下E和C时按住SHIFT,请使用“+(EC)”。 要指定在按下E时按住SHIFT,然后按C而不按SHIFT,请使用“+ EC”。

请注意,由于您希望同时按下ESC和(例如) E ,因此需要将它们括在括号中。

Alt + F4仅在括号中起作用

 SendKeys.SendWait("(%{F4})");