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
}
}
第一个代码片段创建了一个 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
}
}