【问题标题】:Use SendInput to lock the computer使用 SendInput 锁定计算机
【发布时间】:2012-07-27 22:04:37
【问题描述】:

我想通过 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,唯一剩下的功能是使用后锁定屏幕。我尝试通过 SendInput 完成所有这些,我希望不需要添加其他机制。不过,如果 SendInput 不起作用,我将使用您提到的 Win32 调用。但我想知道为什么它不起作用。
  • 好的。您可能会发现 this related question 很有帮助。

标签: c++ windows sendinput


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 2017-07-07
    • 1970-01-01
    • 2020-06-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多