如何编写自动锁定屏幕并挂起

wen 实用脚本 2

本文目录导读:

如何编写自动锁定屏幕并挂起

  1. Windows
  2. macOS
  3. Linux (Ubuntu/Debian)
  4. 跨平台解决方案 (Python)
  5. 自动化定时执行
  6. 注意事项

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任务计划程序

  1. 打开"任务计划程序"
  2. 创建基本任务
  3. 触发器选择"每天"或"当计算机空闲时"
  4. 操作选择"启动程序",指向你的批处理脚本

Linux cron作业

# 编辑crontab
crontab -e
# 每天晚上10点执行
0 22 * * * /path/to/your/lock_and_suspend.sh

注意事项

  1. 权限要求:某些操作(如挂起/休眠)需要管理员/root权限
  2. 保存工作:确保在执行前保存所有未保存的工作
  3. 测试环境:先在测试环境中验证脚本
  4. 安全考虑:自动锁定可防止未授权访问

选择适合你操作系统和使用场景的方法即可。

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