【问题标题】:Lock windows workstation using Python使用 Python 锁定 Windows 工作站
【发布时间】:2019-10-05 05:27:28
【问题描述】:

有没有办法通过 Windows 上的 Python 脚本锁定 PC?

我不想自己实现某种锁定 - 我想使用与用户按下 WIN+L时相同的锁定屏幕> 或通过开始菜单锁定机器。

【问题讨论】:

    标签: python windows


    【解决方案1】:

    这可以通过 user32.dll 中的 LockWorkStation() 函数来完成:

    此功能与按 Ctrl+Alt+Del 并单击锁定工作站的结果相同。

    在 Python 中,可以使用 Python 标准库中的 ctypes/windll FFI 调用它:

    import ctypes
    ctypes.windll.user32.LockWorkStation()
    

    【讨论】:

    • @Mandelbrotter 该评论应该如何有用?我在最初的问题中提到 WIN+L 会锁定桌面,而我的问题显然是关于以编程方式进行的......
    【解决方案2】:

    让我们避免使用库/DLL 文件的一个很好的解决方案是使用命令提示符/power shell。 尝试在您的 cmd 中运行此命令 rundll32.exe user32.dll, LockWorkStation....PC 已锁定!! 所以我们可以像这样使用 subprocess 来运行这个命令:

        import subprocess
        cmd='rundll32.exe user32.dll, LockWorkStation'
        subprocess.call(cmd)
    

    【讨论】:

    • 我认为这很混乱。另外,你不应该在这里使用shell=True - 这里绝对不需要这个。
    • 我认为从能够直接调用 dll 函数的代码中调用 rundll 很麻烦。此外,理想情况下,subprocess.call() 应该使用数组(命令和参数)而不是字符串来调用。
    • 我认为你是对的,但我上面的代码适用于子进程
    猜你喜欢
    • 2011-01-24
    • 1970-01-01
    • 2018-11-19
    • 2010-11-18
    • 1970-01-01
    • 2023-03-08
    • 2010-09-15
    • 2012-11-24
    • 2012-07-02
    相关资源
    最近更新 更多