c++ - 使用 SendInput 锁定计算机

标签 c++ windows sendinput

我想通过 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)

我的问题:没有任何反应 :-(

有人知道解决方案是什么吗?

最佳答案

如果我没记错的话,您将无法使用 SendInput()(或 keybd_event())执行此操作,因为它只是将键注入(inject)键盘输入缓冲区,但特殊的键序列如 CTRL+ALT+DELWIN+L 等在较低层操作,在将键放入缓冲区之前由操作系统解释输入缓冲区。

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

关于c++ - 使用 SendInput 锁定计算机,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11696253/

相关文章:

c++ - 命名管道读取超时

windows - 如何配置 Compass 以在 Windows 上生成具有 Unix 行结尾的文件?

windows - 在函数外使用变量

.net - SendInput和64位

c++ - 使用系统命令时 SendInput 不起作用

c# - VkKeyScan 返回相同的代码,不带重音字母和非重音字母的修饰符

c++ - Borland Builder C++ 6 中的 CoreAudio API

c++ - 在 C++ 中制作类似 Java 的可运行类时出现的问题

c++ - 为什么新的 Visual Studio 运行时不是 Windows 的一部分

windows - 编写服务以保持两个文件夹同步?