怎么用脚本锁定屏幕

wen 实用脚本 2

本文目录导读:

怎么用脚本锁定屏幕

  1. 1. Windows(批处理 / PowerShell / VBScript)
  2. 2. macOS(AppleScript / Bash)
  3. 3. Linux(X11 / Wayland)
  4. 4. 跨平台脚本(Python)
  5. 5. 定时锁屏(结合计划任务)
  6. 注意事项

Windows(批处理 / PowerShell / VBScript)

方法 A:使用 rundll32.exe(最经典)

@echo off
rundll32.exe user32.dll,LockWorkStation

保存为 lock.bat,双击运行即可。


方法 B:使用 PowerShell

Add-Type -TypeDefinition 'using System; using System.Runtime.InteropServices; public class Lock { [DllImport("user32.dll")] public static extern bool LockWorkStation(); }'
[Lock]::LockWorkStation()

或更简洁:

(New-Object -ComObject Shell.Application).Windows() | Out-Null; rundll32.exe user32.dll,LockWorkStation

方法 C:使用 VBScript

CreateObject("WScript.Shell").Run "rundll32.exe user32.dll,LockWorkStation", 0

保存为 lock.vbs(可静默运行,无窗口闪烁)。


macOS(AppleScript / Bash)

方法 A:使用 AppleScript(推荐)

tell application "System Events" to keystroke "q" using {command down, control down}

保存为 .scpt 文件,或通过 osascript 运行:

osascript -e 'tell application "System Events" to keystroke "q" using {command down, control down}'

方法 B:直接调用 pmsetloginctl

# 需要屏幕睡眠(锁屏)
pmset displaysleepnow

Linux(X11 / Wayland)

方法 A:使用 xdg-screensaver(X11)

xdg-screensaver lock

方法 B:使用 loginctl(systemd 环境)

loginctl lock-session

注意:部分桌面环境可能需要指定会话,

loginctl lock-session $(loginctl | grep $(whoami) | awk '{print $1}')

方法 C:使用 dm-tool(LightDM)

dm-tool lock

方法 D:使用 gnome-screensaver-command(GNOME)

gnome-screensaver-command -l

跨平台脚本(Python)

使用 Python 的 os 模块,根据操作系统调用对应命令:

import os
import platform
system = platform.system()
if system == "Windows":
    os.system("rundll32.exe user32.dll,LockWorkStation")
elif system == "Darwin":  # macOS
    os.system("pmset displaysleepnow")
elif system == "Linux":
    os.system("xdg-screensaver lock")  # 或 loginctl lock-session
else:
    print("Unsupported OS")

定时锁屏(结合计划任务)

  • Windows:用“任务计划程序”运行 lock.bat
  • Linux:用 cronsystemd timer 定时执行脚本。
  • macOS:用 launchd 定时执行。

注意事项

  • 权限:某些脚本(如 loginctl lock-session)可能需要用户权限,而非 root
  • 桌面环境差异:Linux 锁屏命令因桌面环境(GNOME、KDE、XFCE)而异,可测试上述命令是否有效。
  • 静默执行:VBScript 可隐藏窗口,适合无人值守场景。

根据你的系统选择相应脚本即可,如果需要更复杂的逻辑(如定时锁屏、远程触发),可以在此基础上扩展。

抱歉,评论功能暂时关闭!