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

Pen*_*uin 8 c# windows button sendkeys

基本上我想在代码中模拟用户点击windows按钮.我知道有SendKeys允许我将按键发送到Windows,如果我得到它们的句柄,但我无法弄清楚我需要处理以发送Windows按钮命令.例如Windows按钮+ L.稍微读了一下,看来CTRL-ESC也应该弹出开始菜单,但不知道如何告诉它将密钥发送到Windows(如果这是可能的话).任何帮助将非常感激.

干杯!

Dal*_*ale 9

我不认为你可以使用SendKeys这样做,你需要p/invoke到一个API函数,可能是keybd_event 发送CTRL + ESC或Windows键.

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


All*_*nek 5

用户通过WinKey快捷方式执行的某些操作可以通过其他方式以编程方式完成.要获取WinKey + L示例,您只需使用以下语句:

Process.Start("rundll32.exe", "user32.dll,LockWorkStation");
Run Code Online (Sandbox Code Playgroud)

如果你能详细说明你想要完成什么,也许有比keybd_event更好的方法(正如Dale建议的那样).


Pet*_*lon -2

您需要使用全局键盘挂钩来挂钩应用程序外部的键盘。这里有一篇关于如何执行此操作的文章。

  • 不正确。仅当您想听击键时才这样做,而不是当您想发送击键时才这样做。 (2认同)