powershell - 暂停脚本直到检测到鼠标事件或检测到按键

powershell - pause script until mouse event detected OR key press detected

第一个代码片段创建了一个 while 循环,它将暂停脚本直到检测到鼠标移动。

第二个片段暂停脚本,直到按下某个键。

它们都彼此独立工作,但我不确定如何将两者结合起来,因此脚本会暂停,直到检测到鼠标移动或按下某个键。

Add-Type -AssemblyName System.Windows.Forms
$originalPOS = [System.Windows.Forms.Cursor]::Position.X

while (1) {
    $newPOS = [System.Windows.Forms.Cursor]::Position.X
    if($newPOS -eq $originalPOS){
        Start-Sleep -Seconds 3
    }else {
        break
    }
}

第二个片段

Write-Host -NoNewline 'Press any key'; $null = $host.UI.RawUI.ReadKey('NoEcho,IncludeKeyDown')

在 PowerShell 中有更复杂的方法来检测鼠标和键盘输入。但对于你的情况,这可能就足够了。

while (1) {
    if ([Console]::KeyAvailable -or [Windows.Forms.Cursor]::Position.X -ne $originalPOS){
        break
    }
    else {
        Start-Sleep -Seconds 3
    }
}