Powershell——如何播放不同的系统声音?

Jon*_*ica 4 powershell

当我这样做时:

我听到令人讨厌的蜂鸣声。

当我执行以下任何操作时,我期望发出不同的声音,但它们都是相同的。如何获取原生声音?

[System.Media.SystemSounds]::Asterisk.Play()
[System.Media.SystemSounds]::Beep.Play()
[System.Media.SystemSounds]::Exclamation.Play()
[System.Media.SystemSounds]::Hand.Play()
[System.Media.SystemSounds]::Question.Play()
Run Code Online (Sandbox Code Playgroud)

(注意,我不想播放文件...我希望播放 Windows 原生的声音)

pos*_*ote 6

这不是 Powershell 代码问题或功能。这是 Windows 操作系统设置。

您的问题是因为它们是默认声音,只是指向.wav文件的指针。

如果您希望这些文件不同,则必须.wav从它们所在的 Windows 文件夹中选择不同的文件。

C:\Windows\Media

所以,至于你的评论***note, I do not want to play a file.***,是的,是的;但只是上面提到的系统默认位置上已有的一个。

只需转到控制面板并选择Sounds,或右键单击任务栏中的扬声器并选择声音。无论哪种方式,请根据需要手动更改。

那么你的选择就变成了这样......

[System.Console]::Beep()
[System.Console]::Beep(1000,300)
Run Code Online (Sandbox Code Playgroud)

或这个...

(New-Object System.Media.SoundPlayer $(Get-Random $(Get-ChildItem -Path "$env:windir\Media\*.wav").FullName)).Play()
Run Code Online (Sandbox Code Playgroud)