You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将PowerShell的PlayLooping与OK按钮结合实现音频循环至按钮按下

解决方案

核心思路是利用PlayLooping()的异步特性和Popup()的阻塞特性:先启动音频循环播放,再弹出对话框(脚本会阻塞在此处直到用户点击OK),最后停止音频播放。

完整代码如下:

# 初始化音频播放器并指定目标音频文件
$audioPlayer = New-Object System.Media.SoundPlayer('C:\Windows\Media\Ring01.wav')

# 启动后台循环播放音频(不阻塞后续代码执行)
$audioPlayer.PlayLooping()

# 弹出带OK按钮的提示框,脚本将暂停在此处,直到用户点击按钮
$msgBox = New-Object -ComObject Wscript.Shell
$null = $msgBox.Popup("ALARM", 0, "警报提示", 0x0)

# 用户确认后立即停止音频播放
$audioPlayer.Stop()

# 清理COM对象,释放系统资源(可选但推荐)
[System.Runtime.Interopservices.Marshal]::ReleaseComObject($msgBox) | Out-Null
Remove-Variable msgBox

关键说明

  • PlayLooping():异步启动音频循环,不会卡住后续的弹窗代码执行
  • Popup():默认会阻塞脚本运行,直到用户点击OK按钮,刚好实现了"播放直到用户确认"的逻辑
  • Stop():用户点击OK后立即终止音频播放,结束循环

内容的提问来源于stack exchange,提问作者user7839656

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.07 16:12:05