防止 PowerShell 中的空闲模式

Rohan Timalsina 2023年1月30日 2022年5月16日
  1. 使用 SendKeys 方法通过 PowerShell 防止空闲模式
  2. 使用 PowerShell 移动鼠标以防止空闲模式
防止 PowerShell 中的空闲模式

PowerShell 是一个强大的工具,可以自动执行系统中的各种任务。当你在计算机上进行重要工作时,桌面锁定或空闲模式可能会令人不安。

如果不在计算机前,防止系统进入空闲模式会容易得多。本教程将介绍多种使用 PowerShell 自动防止空闲模式的方法。

使用 SendKeys 方法通过 PowerShell 防止空闲模式

SendKeys() 方法将击键和击键组合发送到活动应用程序。

$WShell = New-Object -Com "Wscript.Shell"
while (1) {$WShell.SendKeys("a"); sleep 60}

在上面的脚本中,第一个命令创建了一个 Wscript.Shell 对象,第二个命令创建了一个无限循环,其中每分钟按下一次键 a。因此,它将防止系统的桌面锁定或屏幕超时。

你应该使用在活动应用程序中没有任何操作的密钥。或者,你可以打开诸如记事本之类的文本编辑器来输出键,而不是使 Windows 输入缓冲区过载。

你还可以在有限的时间内运行脚本,而不是无限期地运行该脚本。以下脚本发送密钥每分钟 1 小时,以防止桌面锁屏。

param($minutes = 60)

$myshell = New-Object -com "Wscript.Shell"

for ($i = 0; $i -lt $minutes; $i++) {
  Start-Sleep -Seconds 60
  $myshell.sendkeys(".")
}

使用 PowerShell 移动鼠标以防止空闲模式

我们都知道鼠标光标的移动会阻止系统进入空闲或睡眠模式。我们将使用 PowerShell 每隔 n 秒自动移动一次鼠标。

以下脚本每 5 秒从当前位置移动一次鼠标光标。

Add-Type -AssemblyName System.Windows.Forms
while ($true)
{
  $Pos = [System.Windows.Forms.Cursor]::Position
  $x = ($pos.X) + 1
  $y = ($pos.Y) + 1
  [System.Windows.Forms.Cursor]::Position = New-Object System.Drawing.Point($x, $y)
  Start-Sleep -Seconds 5
}
Rohan Timalsina avatar Rohan Timalsina avatar

Rohan is a learner, problem solver, and web developer. He loves to write and share his understanding.

LinkedIn Website