如何使用C#SendKeys以编程方式按Windows按钮

问题描述:

基本上我想在代码中模拟用户单击windows按钮。我知道有SendKeys,它允许我发送按键到Windows,如果我得到一个句柄,但我不明白是什么,我需要得到一个句柄,以发送Windows按钮命令。例如。 Windows按钮+ L.阅读了这一点后,看起来CTRL-ESC也应该弹出开始菜单,但不知道如何告诉它将密钥发送到Windows(如果这甚至是可能的话)。任何帮助将非常感激。如何使用C#SendKeys以编程方式按Windows按钮

干杯!

您需要使用全局键盘挂钩挂接到应用程序外部的键盘。有一篇关于如何去做的文章here

+2

不正确。只有当您想要听按键时,才会发送按键。 – 2009-09-27 18:19:51

我不认为你可以使用SendKeys做到这一点,你需要p /调用API函数,而不是keybd_event来发送CTRL + ESC或Windows键。

Here是以VB方式打开开始菜单的示例,here是pinvoke.net上带有C#签名的keybd_event。

用户通过WinKey快捷方式执行的一些操作可以通过其他方式以编程方式完成。把你的WINKEY + L例如,你可以,而不是仅仅使用下面的语句:

Process.Start("rundll32.exe", "user32.dll,LockWorkStation"); 

如果你能在你试图完成什么细说了,也许还有比keybd_event更好的办法(如戴尔曾建议)。

+0

在上面的陈述中,如果您在三个网络的网络中,是否可以锁定特定的用户? – 2014-06-13 09:17:22