使用 SendKeys 发送 Windows 密钥

2023-12-04

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

像这样;

Ctrl + C:

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

or Alt + F4:

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

But I can't send "Windows Key" with SendKeys. I tried ex: Win + E : .SendWait("#e") but it's not working. What should I use instead of "#"?

Thanks.


好吧,事实证明你真正想要的是这样的:http://inputsimulator.codeplex.com/

这已经完成了曝光的所有艰苦工作Win32 SendInput方法到 C#。这允许您直接发送 Windows 密钥。这是经过测试并且有效的:

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

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


Old

将此保留在这里供参考,它不会在所有操作系统中工作,并且不会总是按照您想要的方式运行。请注意,您尝试将这些击键发送到应用程序,操作系统通常会提前拦截它们。就 Windows 7 和 Vista 而言,还为时过早(在E已发送)。

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

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

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

请注意,既然你想要ESC和(说)E同时按下,您需要将它们括在括号中。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 SendKeys 发送 Windows 密钥 的相关文章

随机推荐