本文目录导读:

Windows
方法1:使用批处理脚本
@echo off :: 锁定屏幕 rundll32.exe user32.dll,LockWorkStation :: 等待5秒后休眠 timeout /t 5 /nobreak >nul :: 休眠/挂起 rundll32.exe powrprof.dll,SetSuspendState Sleep
方法2:使用PowerShell
# 锁定屏幕 Lock-WorkStation # 等待5秒 Start-Sleep -Seconds 5 # 休眠/挂起 Add-Type -AssemblyName System.Windows.Forms [System.Windows.Forms.Application]::SetSuspendState([System.Windows.Forms.PowerState]::Suspend, $false, $false)
macOS
AppleScript方法
tell application "System Events"
-- 锁定屏幕
start screen saver
delay 5
-- 休眠
do shell script "pmset sleepnow"
end tell
Shell脚本方法
#!/bin/bash # 锁定屏幕 /System/Library/CoreServices/"Menu Extras"/User.menu/Contents/Resources/CGSession -suspend sleep 5 # 休眠 sudo pmset sleepnow
Linux (Ubuntu/Debian)
方法1:使用xdg-screensaver和systemctl
#!/bin/bash # 锁定屏幕 xdg-screensaver lock sleep 5 # 挂起 systemctl suspend
方法2:使用i3lock或其它锁屏工具
#!/bin/bash # 使用i3lock锁屏(需要先安装) i3lock -n & sleep 5 # 挂起 sudo pm-suspend
跨平台解决方案 (Python)
import subprocess
import time
import platform
def lock_and_suspend():
system = platform.system()
if system == "Windows":
# 锁定
subprocess.run("rundll32.exe user32.dll,LockWorkStation", shell=True)
time.sleep(5)
# 挂起
subprocess.run("rundll32.exe powrprof.dll,SetSuspendState Sleep", shell=True)
elif system == "Darwin": # macOS
# 锁定
subprocess.run(['/System/Library/CoreServices/"Menu Extras"/User.menu/Contents/Resources/CGSession', '-suspend'])
time.sleep(5)
# 挂起
subprocess.run(['sudo', 'pmset', 'sleepnow'])
elif system == "Linux":
# 锁定(根据使用的桌面环境不同)
subprocess.run(['xdg-screensaver', 'lock'])
time.sleep(5)
# 挂起
subprocess.run(['systemctl', 'suspend'])
if __name__ == "__main__":
lock_and_suspend()
自动化定时执行
Windows任务计划程序
- 打开"任务计划程序"
- 创建基本任务
- 触发器选择"每天"或"当计算机空闲时"
- 操作选择"启动程序",指向你的批处理脚本
Linux cron作业
# 编辑crontab crontab -e # 每天晚上10点执行 0 22 * * * /path/to/your/lock_and_suspend.sh
注意事项
- 权限要求:某些操作(如挂起/休眠)需要管理员/root权限
- 保存工作:确保在执行前保存所有未保存的工作
- 测试环境:先在测试环境中验证脚本
- 安全考虑:自动锁定可防止未授权访问
选择适合你操作系统和使用场景的方法即可。