Public/utils/Start-ScrollLockToggle.ps1
function Start-ScrollLockToggle { <# .SYNOPSIS Toggles the ScrollLock key at regular intervals to prevent system idle or screen lock. .DESCRIPTION This function creates an endless loop that toggles the ScrollLock key on and off at defined intervals. Useful for keeping a system active without user interaction. .PARAMETER Interval The number of seconds to wait between toggle cycles. Default is 350 seconds. .PARAMETER ToggleDuration The duration in milliseconds for how long the ScrollLock stays toggled before toggling back. Default is 200 milliseconds. .EXAMPLE Start-ScrollLockToggle Starts toggling ScrollLock every 350 seconds. .EXAMPLE Start-ScrollLockToggle -Interval 60 -ToggleDuration 100 Starts toggling ScrollLock every 60 seconds with a 100 millisecond toggle duration. .NOTES Author: Michiel VH #> param ( [Parameter()] [int]$Interval = 350, [Parameter()] [int]$ToggleDuration = 200 ) Write-Host "Starting ScrollLock toggle every $Interval seconds..." -ForegroundColor Green $WShell = New-Object -com "Wscript.Shell" try { while ($true) { $WShell.sendkeys("{SCROLLLOCK}") Start-Sleep -Milliseconds $ToggleDuration $WShell.sendkeys("{SCROLLLOCK}") Start-Sleep -Seconds $Interval } } catch { Write-Host "ScrollLock toggle interrupted: $_" -ForegroundColor Yellow } finally { Write-Host "ScrollLock toggle stopped." -ForegroundColor Yellow } } |