能不能让脚本在你离开电脑时自动锁定屏幕?

wen 实用脚本 46

本文目录导读:

能不能让脚本在你离开电脑时自动锁定屏幕?

  1. Windows系统
  2. macOS系统
  3. Linux系统
  4. 通用方案:使用Python脚本
  5. 推荐方案

当然可以!以下是几种实现电脑自动锁定屏幕的方法,适用于不同操作系统:

Windows系统

方法1:使用PowerShell脚本(推荐)

# 创建一个循环检测的脚本
while ($true) {
    # 获取空闲时间(秒)
    $idleTime = [PInvoke.Win32.UserInput]::GetIdleTime()
    # 如果空闲超过5分钟(300秒),则锁定
    if ($idleTime -gt 300) {
        [System.Windows.Forms.Application]::SetSuspendState('LockWorkStation', $false, $false)
        break
    }
    # 每30秒检查一次
    Start-Sleep -Seconds 30
}

方法2:使用计划任务

  1. 打开“任务计划程序”
  2. 创建基本任务,触发器设为“当计算机空闲时”
  3. 操作选择“启动程序”,程序填 rundll32.exe user32.dll,LockWorkStation

方法3:第三方工具

  • Caffeine:可设置空闲时间自动锁定
  • AutoHotkey:编写更复杂的自动化脚本

macOS系统

方法1:使用AppleScript

tell application "System Events"
    -- 检测空闲时间(秒)
    set idleTime to do shell script "io=$(ioreg -c IOHIDSystem | awk '/HIDIdleTime/ {print $NF}'); echo $((io/1000000000))"
    if idleTime > 300 then
        -- 锁定屏幕
        do shell script "pmset displaysleepnow"
    end if
end tell

方法2:使用终端命令

# 创建检测脚本
#!/bin/bash
idle_time=$(ioreg -c IOHIDSystem | awk '/HIDIdleTime/ {print $NF/1000000000}')
if (( $(echo "$idle_time > 300" | bc -l) )); then
    /System/Library/CoreServices/Menu\ Extras/User.menu/Contents/Resources/CGSession -suspend
fi

Linux系统

使用xautolock

# 安装xautolock
sudo apt install xautolock
# 设置10分钟空闲后锁定
xautolock -time 10 -locker "gnome-screensaver-command -l"
# 或使用更简单的命令
idle=$(xprintidle)
if [ $idle -gt 300000 ]; then
    gnome-screensaver-command -l
fi

通用方案:使用Python脚本

import time
import ctypes
import platform
def lock_screen():
    system = platform.system()
    if system == "Windows":
        ctypes.windll.user32.LockWorkStation()
    elif system == "Darwin":  # macOS
        import os
        os.system("pmset displaysleepnow")
    elif system == "Linux":
        import os
        os.system("gnome-screensaver-command -l")
def check_idle_time():
    # 这里需要根据系统实现空闲时间检测
    # Windows: GetLastInputInfo
    # Linux: xprintidle
    # macOS: ioreg
    pass
# 主循环
while True:
    # 获取空闲时间
    idle_seconds = check_idle_time()
    # 如果空闲超过设定时间(如10分钟)
    if idle_seconds > 600:
        lock_screen()
        break
    time.sleep(30)

推荐方案

最实用简单:使用系统自带的屏幕保护程序设置

  • Windows:设置屏幕保护为“登录界面”等待时间
  • macOS:系统偏好设置 → 安全性与隐私 → 通用 → 设置睡眠/屏幕保护时间
  • Linux:系统设置 → 电源管理 → 屏幕锁定

如果需要完整脚本或特定系统的详细配置,请告诉我你的操作系统版本和使用场景,我可以提供更精确的解决方案!

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