防止 PowerShell 中的空閒模式
Rohan Timalsina
2023年1月30日
2022年5月16日
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
}
Author: Rohan Timalsina