在visual basic中模拟windowskey + L?

4 windows vb6 winapi vba

我想在visual basic中模拟WindowsKey + L(锁定控制台的快捷方式)并将其绑定到一个函数.因此,当调用此函数时,它将锁定控制台.我可以这样做吗?

Cod*_*ray 14

模拟热键是错误的方法.您需要做的就是调用该LockWorkStation函数.这与按Ctrl+ Alt+ Del并选择"锁定工作站"或使用Win+ L热键具有相同的结果,除了您可以通过代码以编程方式执行此操作.

要从VB应用程序调用此函数,您需要编写声明,如下所示:

Private Declare Function LockWorkStation Lib "user32.dll" () As Long
Run Code Online (Sandbox Code Playgroud)

在定义任何过程之前,您需要将该声明放在模块文件的顶部.然后,在其中一个过程中,您可以调用该函数.例如:

Private Sub LockComputer()
    LockWorkStation
End Sub
Run Code Online (Sandbox Code Playgroud)

更好的代码会检查LockWorkStation错误代码的返回值.返回值0表示错误.在VB中检查Win32错误的标准方法Err.LastDllError,将为您提供有关确切错误的更多信息.

  • + 1 Yup API是Go的最佳方式.不过有一个建议.我没有测试它,但VBA不会让你使用`Private Sub Lock()`我相信'Lock'是一个保留字.也许把它改成像'Private Sub LockPC()`这样的东西会有帮助吗? (3认同)