How to press the Windows button programmatically using C# SendKeys

前端 未结 3 1440
故里飘歌
故里飘歌 2021-01-12 04:02

Basically I want to simulate in code a user clicking on the windows button. I know there is SendKeys which allows me to send key presses to windows if I get a handle to them

相关标签:
3条回答
  • 2021-01-12 04:41

    Some of the things that a user would do via a WinKey shortcut can be done programmatically in other ways. To take your WinKey+L example, you could instead just use the following statement:

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

    If you could elaborate on what exactly you're trying to accomplish, maybe there's a better way than keybd_event (as Dale has suggested).

    0 讨论(0)
  • 2021-01-12 04:53

    You need to use a global keyboard hook to hook into keyboards outside your application. There's an article on how to do it here.

    0 讨论(0)
  • 2021-01-12 05:08

    I don't think you can do this using SendKeys, you will need to p/invoke to an API function instead, probably keybd_event to send either CTRL+ESC or the Windows key.

    Here is an example of opening the start menu this way in VB and here is keybd_event with its C# signature on pinvoke.net.

    0 讨论(0)
提交回复
热议问题