根据 grawity 的建议,不要使用我放在这个答案末尾的批处理文件。这是因为与Win32 API函数的调用约定rundll32.exe
不LockWorkStation
匹配(详细信息请参阅此MSDN博客条目)。话虽这么说,有一个更好的选择,它不需要太多的工作。
您可以使用AutoIt 脚本语言和DllCall
函数来调用 Win32 API 函数,而不会损坏调用堆栈。您还可以使用ProcessClose
代替TASKKILL
。以下是LockWorkStation
来自 MSDN 的参考资料,供您参考。
将以下两行放入文件中,并将其另存为exitandlock.au3
(或类似的内容)。然后您可以使用 AutoIt 运行它(如果需要,甚至可以将其编译为 .exe)。
ProcessClose("yourapp.exe")
DllCall("user32.dll", "BOOL", "LockWorkStation")
Run Code Online (Sandbox Code Playgroud)
这应该为您提供您想要的内容,而不会破坏调用堆栈。然后,您可以将该文件绑定到热键并使用它来锁定您的工作站。或者,您可以将其编译为 .exe 文件,并将其设置为在计算机处于非活动状态后作为计划任务运行。
最后,您可能还想使用该WinClose
函数作为ProcessClose
.
正如我所说,请不要使用此方法。我将其保留在这里只是为了完整性,因为这是互联网上使用最广泛的方式之一。您可以使用简单的批处理文件来使用以下TASKKILL
命令来执行此操作:
@ECHO OFF
TASKKILL /IM yourapp.exe
Rundll32.exe User32.dll,LockWorkStation
Run Code Online (Sandbox Code Playgroud)
然后,当您想要锁定工作站时,只需运行批处理文件即可。或者,您也可以指定一个热键来执行批处理文件,然后当您想要锁定它时只需按该组合键即可。有关该命令的更多详细信息TASKKILL
,请参阅Microsoft 的这篇文章。
归档时间: |
|
查看次数: |
6147 次 |
最近记录: |