使用SendInput锁定计算机

3

我想使用C++中的SendInput来锁定计算机(Windows+L)。 我创建了简单的keyDown / keyUp函数,在其中使用SendInput发送VK。 在keyUp上,它添加了flag 0x0002

我可以模拟我的tab键,我的windows键,现在我尝试通过模拟按键来锁定计算机。 我发送以下消息:

key down:  0x5B (win key)
key down:  0x4C (L)
key up:    0x4C (L)
key up:    0x5B (win key)

我的问题:什么都没有发生 :-(
有人知道解决方法吗?

1
嗯,为什么不直接调用专门设计用于锁定系统的Win32函数呢? - undefined
我使用这个来控制一个特定的应用程序,该应用程序可以通过远程计算机上的按键来控制。在这个应用程序中,我使用了SendInput来完成所有操作,唯一剩下的功能是在使用后锁定屏幕。我尝试通过SendInput来实现所有这些,并希望不需要添加其他机制。不过,如果SendInput不起作用,我会使用你提到的Win32调用。但我想知道为什么它不起作用。 - undefined
好的。您可能会发现这个相关问题有帮助。 - undefined
1个回答

3
如果我没有理解错误,您将无法使用SendInput()(或keybd_event())来完成此操作,因为它只是将按键注入键盘输入缓冲区,但特殊的按键序列如CTRL+ALT+DELWIN+L等在键入缓冲区之前由操作系统解释的更低层次上操作。

正确的锁定计算机的方法是使用LockWorkStation()函数。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接