检查系统声音是打开还是关闭

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

【讨论】:

但我正在关闭和打开来自混音器的系统声音。这样做不会更改您提到的注册表值。

以上是关于检查系统声音是打开还是关闭的主要内容,如果未能解决你的问题,请参考以下文章

三星手机,安卓系统,怎么关闭照相机声音?

关闭linux命令行声音和vim编辑器中的声音

手机开静音模式可照相机还是有声音怎么办

苹果x在微信通话中的时候,在打开其他软件比如看电影听歌,然后音量开到最大声音还是很小怎么回事

单位办公电脑声音和摄像头被关闭,如何打开笔记本麦克风和摄像头。

切换系统声音 - 快速