检查系统声音是打开还是关闭
Posted
技术标签:
【中文标题】检查系统声音是打开还是关闭【英文标题】:Check if system sounds are ON or OFF 【发布时间】:2020-06-04 11:47:59 【问题描述】:我有一个带有按钮的 vb.net 应用程序;当我点击按钮时,它应该会显示一条消息,说明系统声音是打开还是关闭。
我该怎么做?
系统声音是指系统播放的声音,例如“星号”、“手”等。这些声音通常在弹出消息框时出现。这些声音可以在音量混合器中关闭或打开。我希望我的应用程序在单击按钮时显示消息“系统声音已打开”或“...关闭”,因为系统声音在音量混合器中打开或关闭。
下图显示了在音量混合器窗口中关闭的系统声音。
【问题讨论】:
***.com/questions/52001368/… @J.ScottElblein 我认为它回答了如何控制计算机的音频而不是控制系统声音。 您可以从注册表中读取当前声音方案是否设置为无。HKEY_CURRENT_USER\AppEvents\Schemes
在(Default)
键下。
@J.ScottElblein (Default) 的值为“.Default”,如果静音或取消静音系统声音,此值不会改变
静音与关闭不同。静音是计算机音频,如上面的链接。
【参考方案1】:
您可以使用 NuGet 包 Audioswitcher.AudioApi.CoreAudio
和以下代码来完成此操作。
Imports AudioSwitcher.AudioApi.CoreAudio
Module Module1
Sub Main()
Dim dev As CoreAudioDevice = New CoreAudioController().DefaultPlaybackDevice
If dev.IsMuted Then
Console.WriteLine("Volume muted.")
Else
Console.WriteLine("Volume not muted.")
End If
End Sub
End Module
【讨论】:
我想检查系统声音是否关闭,而不是电脑音量。为了清楚起见,我已经编辑了问题。 这不是最初的问题!【参考方案2】:如果您将系统声音方案更改为“无声音”(意味着系统声音全部关闭):
然后HKEY_CURRENT_USER\AppEvents\Schemes
默认键将显示为.None
;否则,它将显示方案的名称。您可以测试一下系统声音是否全部关闭,但要检查 .None
。
If Registry.GetValue("HKEY_CURRENT_USER\AppEvents\Schemes", "", String.Empty).ToString = ".None" Then
Debug.Print("System Sounds are Off")
Else
Debug.Print("System Sounds are On")
End If
【讨论】:
但我正在关闭和打开来自混音器的系统声音。这样做不会更改您提到的注册表值。以上是关于检查系统声音是打开还是关闭的主要内容,如果未能解决你的问题,请参考以下文章
苹果x在微信通话中的时候,在打开其他软件比如看电影听歌,然后音量开到最大声音还是很小怎么回事