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

基本上我想在代码中模拟一个用户点击Windowsbutton。 我知道有SendKeys允许我发送按键到Windows,如果我得到一个句柄,但我不明白是我需要得到一个句柄,以发送Windowsbutton命令。 例如Windowsbutton+ L.阅读了这一点后,似乎CTRL-ESC也应该popup开始菜单,但不知道如何告诉它发送密钥到Windows(如果这是可能的话)。 任何帮助将非常感激。

干杯!

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

下面是在VB中以这种方式打开开始菜单的示例, 这里是pinvoke.net上带有C#签名的keybd_event。

用户可以通过WinKey快捷方式执行的一些操作可以通过其他方式进行编程。 以WinKey + L为例,你可以使用下面的语句:

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

如果你能详细说明你想要完成的是什么,或许有比keybd_event更好的方法(就像Dale所说的那样)。

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