Проверьте, включены или выключены системные звуки.

У меня есть приложение vb.net с кнопкой; когда я нажимаю кнопку, должно отображаться сообщение о том, включены ли системные звуки.

Как это сделать?

Под системными звуками я подразумеваю звуки, воспроизводимые системой, такие как «звездочка», «рука» и т. д. Эти звуки обычно возникают, когда всплывает окно сообщения. Эти звуки можно отключить или включить в микшере громкости. Я хочу, чтобы мое приложение по нажатию кнопки показывало сообщение «Системные звуки включены» или «... ВЫКЛ» в результате включения или выключения системных звуков в микшере громкости.

На изображении ниже показаны системные звуки, отключенные в окне микшера громкости.


person Somanna    schedule 04.06.2020    source источник
comment
stackoverflow .com/questions/52001368/   -  person Mary    schedule 04.06.2020
comment
@ J.ScottElblein Я думаю, что это ответ на вопрос, как управлять звуком компьютера, а не об управлении системными звуками.   -  person Somanna    schedule 04.06.2020
comment
Вы можете прочитать из реестра, чтобы увидеть, не установлено ли для текущей звуковой схемы значение none. HKEY_CURRENT_USER\AppEvents\Schemes под ключом (Default).   -  person J. Scott Elblein    schedule 04.06.2020
comment
@J.ScottElblein Значение (по умолчанию) равно .Default, и это значение не меняется при отключении или включении звука системы.   -  person Somanna    schedule 04.06.2020
comment
Без звука отличается от Выкл. Отключение звука — это звук компьютера, как в приведенной выше ссылке.   -  person J. Scott Elblein    schedule 04.06.2020
comment
stackoverflow.com/questions/19678359/   -  person J. Scott Elblein    schedule 04.06.2020
comment
@ J.ScottElblein Вы правы. На самом деле я имел в виду включение и выключение, а не включение и выключение звука.   -  person Somanna    schedule 04.06.2020


Ответы (2)


Это можно сделать с помощью пакета 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
person Jim Hewitt    schedule 04.06.2020
comment
Я хочу проверить, отключены ли системные звуки, а не громкость компьютера. Я отредактировал вопрос для ясности. - person Somanna; 04.06.2020
comment
Ну, это НЕ был первоначальный вопрос! - person Jim Hewitt; 04.06.2020

Если вы измените системную звуковую схему на «Нет звуков» (это означает, что системные звуки отключены):

введите здесь описание изображения

тогда ключ по умолчанию 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
person J. Scott Elblein    schedule 04.06.2020
comment
Но я выключаю и включаю системные звуки из микшера громкости. Это не меняет значение реестра, которое вы упомянули. - person Somanna; 04.06.2020