在 Windows Vista 中,当显示器关闭但电源未关闭时,如何使计算机锁定?

在 Windows Vista 中,当显示器关闭但电源未关闭时,如何使计算机锁定?

我有一个电源管理设置(通过控制面板设置),如果笔记本电脑连接电源,显示器会在闲置 5 分钟后关闭,但会一直保持电源开启。然而,在这种设置下,如果我不在,计算机不会自动锁定,并且任何路人试图登录时,计算机都会受到攻击。

在这种情况下有什么办法可以强制锁定吗?(如果我让笔记本电脑进入睡眠状态,我可以强制锁定,但是为了立即访问,我想在笔记本电脑连接到电源时保持电源开启。)

答案1

Windows logo keyL当您离开计算机时使用锁定 Windows ...完成!

答案2

您可以使用只能通过密码关闭的屏幕保护程序:

  • 在开始菜单上,单击控制面板。
  • 单击“显示”,然后单击“屏幕保护程序”。
  • 在等待框中,选择 5 分钟
  • 单击“恢复时,密码保护”,然后单击“确定”。

答案3

为此,我创建了一个小型 AutoIt 脚本。它循环工作,定期检查_Timer_GetIdleTime()函数值Timers.au3,如果该值大于一定时间量,则脚本执行tsdiscon.exe,然后 PC 退出到欢迎屏幕。

下面是我使用的代码:

#include <Timers.au3>

const $setpoint = 900000 ; switch by idle time setpoint 900000 ms = 15 minutes
const $interval = 60000 ; check interval 60000 ms = 1 minute
const $tsdisconpath = "C:\WINDOWS\System32\tsdiscon.exe" ; specify the actual path for your OS, this might need to be changed
; eg on my Win 7 HB x64 the file full path is C:\WINDOWS\winsxs\amd64_microsoft-windows-t..es-commandlinetools_31bf3856ad364e35_6.1.7601.17514_none_42d65ed50fa3c682\tsdiscon.exe

$disconnected = false
$idle = 0
while true
    $prev = $idle
    $idle = _Timer_GetIdleTime()
    if $disconnected and $prev > $idle then ; user has logged in again
        $disconnected = false ; reset state
    endif
    if $idle > $setpoint and not $disconnected then
        run($tsdisconpath, "") ; exit to welcome screen
        sleep(10000)
        $disconnected = true
        $idle = 0
    endif
    sleep($interval)
wend

您必须tsdiscon.exe为您的操作系统指定文件的实际路径。我使用 Aut2Exe(完整安装版和便携式 AutoIt 中均有提供)将此代码编译为 exe,然后将其置于自动运行状态。AutoIt 版本为 3.3.8.1。
如果您想退出到锁定屏幕而不是欢迎屏幕,则可以使用

const $tsdisconpath = "RunDll32.exe user32.dll,LockWorkStation

美中不足。我不得不说一下您可能会遇到的脚本的小缺点。通常您在观看电影时不会触摸鼠标和键盘,因此脚本会在设定点突然退出,电影将继续播放。我还注意到,当我在休眠后唤醒 PC 并登录时,出于某种原因,脚本会检测到时间已到,然后退出。

相关内容