防止 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