Как программно отключить Audio Device?

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
TrueTrue
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 167
Зарегистрирован: 20.05.2009 (Ср) 23:18

Как программно отключить Audio Device?

Сообщение TrueTrue » 16.05.2018 (Ср) 20:25

Допустим у меня есть колонки, при необходимости их выключить программно, мне приходится заходить в звуковые устройства Windows и кликать на устройстве "Disabled". Подскажите, как сделать это программно, на VB6? Просто отключить устройство.

Vova_2581
Постоялец
Постоялец
 
Сообщения: 376
Зарегистрирован: 10.01.2010 (Вс) 18:08

Re: Как программно отключить Audio Device?

Сообщение Vova_2581 » 16.05.2018 (Ср) 22:25

Если дело касается XP, то можно так... через класс clsVolume работы с микшером (сторонних авторов) - там много всего. Можно покопаться, еще что нужно "нарыть". На XP все работает, на других системах не знаю, не проверял.
Вложения
Sound.rar
Выкл. и Вкл. звука...
(12.42 Кб) Скачиваний: 187

TrueTrue
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 167
Зарегистрирован: 20.05.2009 (Ср) 23:18

Re: Как программно отключить Audio Device?

Сообщение TrueTrue » 16.05.2018 (Ср) 22:34

К сожалению не подходит. Вопервых у меня Win 7, x64. Но я скачал и запустил. И на скорый взгляд, там именно ВЫКЛЮЧЕНИЕ ЗВУКА, а мне нужно ОТКЛЮЧЕНИЕ УСТРОЙСТВА ВОСПРОИЗВОДЯЩЕГО ЗВУК!

Vova_2581
Постоялец
Постоялец
 
Сообщения: 376
Зарегистрирован: 10.01.2010 (Вс) 18:08

Re: Как программно отключить Audio Device?

Сообщение Vova_2581 » 17.05.2018 (Чт) 1:45

TrueTrue писал(а):мне нужно ОТКЛЮЧЕНИЕ УСТРОЙСТВА ВОСПРОИЗВОДЯЩЕГО ЗВУК!

А если Вам попробовать отключить системную службу Windows Audio ?? Она, по ходу, управляет всем и вся устройствами. Или у Вас их несколько и Вам нужно отключить какой-то определенный audio device??

TrueTrue
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 167
Зарегистрирован: 20.05.2009 (Ср) 23:18

Re: Как программно отключить Audio Device?

Сообщение TrueTrue » 17.05.2018 (Чт) 8:30

Vova_2581 писал(а):
TrueTrue писал(а):мне нужно ОТКЛЮЧЕНИЕ УСТРОЙСТВА ВОСПРОИЗВОДЯЩЕГО ЗВУК!

А если Вам попробовать отключить системную службу Windows Audio ?? Она, по ходу, управляет всем и вся устройствами. Или у Вас их несколько и Вам нужно отключить какой-то определенный audio device??

Да, именно так. Несколько и одно мне нужно выключить, а второе должно остаться работать. А при необходимости, снова включить первое.

Vova_2581
Постоялец
Постоялец
 
Сообщения: 376
Зарегистрирован: 10.01.2010 (Вс) 18:08

Re: Как программно отключить Audio Device?

Сообщение Vova_2581 » 17.05.2018 (Чт) 9:15

Тогда, может быть, нужно попробовать покопать что-нибудь в направлении WMI объекта Win32_SoundDevice ??? Или Shell32 ???..

TrueTrue
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 167
Зарегистрирован: 20.05.2009 (Ср) 23:18

Re: Как программно отключить Audio Device?

Сообщение TrueTrue » 17.05.2018 (Чт) 12:01

Vova_2581 писал(а):Тогда, может быть, нужно попробовать покопать что-нибудь в направлении WMI объекта Win32_SoundDevice ??? Или Shell32 ???..

Может быть. Я никогда не работал с этим, потому не могу ничего сказать. Посмотрю в интернете. Мне бы кусок кода или пример какой.

Vova_2581
Постоялец
Постоялец
 
Сообщения: 376
Зарегистрирован: 10.01.2010 (Вс) 18:08

Re: Как программно отключить Audio Device?

Сообщение Vova_2581 » 17.05.2018 (Чт) 21:27

TrueTrue писал(а):Мне бы кусок кода или пример какой.

Есть пример отключения сетевой карты по выбору, как отдельный device через Shell, но пять-таки для XP. Посмотрите пример уважаемого ger_kar. К сожалению, Win 7 не пользуюсь, поэтому не знаю: можно ли его как-то переделать под Audio и вашу систему?? Вам нужна помощь ГУРУ.

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Как программно отключить Audio Device?

Сообщение Хакер » 17.05.2018 (Чт) 23:31

Всё-таки, чем не устраивает выключить звук от интересующих устройств заглушив их каналы в микшере, вместо того, чтобы отключать сами устройства?

Даже вот с идеологической точки зрения, для заглушивание через микшер не нужны администраторские права, а для управления устройствами — нужно.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

TrueTrue
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 167
Зарегистрирован: 20.05.2009 (Ср) 23:18

Re: Как программно отключить Audio Device?

Сообщение TrueTrue » 18.05.2018 (Пт) 11:35

Хакер писал(а):Всё-таки, чем не устраивает выключить звук от интересующих устройств заглушив их каналы в микшере, вместо того, чтобы отключать сами устройства?

Даже вот с идеологической точки зрения, для заглушивание через микшер не нужны администраторские права, а для управления устройствами — нужно.

Всё просто, у меня "xитрая" звуковая карта 5.1 xonar phoebus, в устройствах она отображается разными устройствами, я использую только два Колонки 5.1 и наушники. Выходы из звуковой разные. Для переключения между колонками и наушниками, я всё время захожу в диспетчер звуковых устройств. Я нашёл в интернете, несколько программ, которые позволяют быстро переключаться между колонками и наушниками, проблема в том, что они просто меняют дефолтное устройство. Но у меня почему-то корректно это не работает. Если допустим я смотрю видео и переключаюсь с колонок на наушники, мне нужно видео остановить(если в браузере, перегрузить страницу) или закрыть плеер и открыть снова, иначе висяк. Если я выключаю колонки из диспетчера звуковых устройств, всё работает корректно, автоматом включаются наушники и наоборот, когда включаю колонки, автоматом вырубаются наушники. Потому я решил сделать себе на VB6 простенькую утилитку, для отключения девайса.

Vova_2581
Постоялец
Постоялец
 
Сообщения: 376
Зарегистрирован: 10.01.2010 (Вс) 18:08

Re: Как программно отключить Audio Device?

Сообщение Vova_2581 » 18.05.2018 (Пт) 15:03

TrueTrue писал(а):Если допустим я смотрю видео и переключаюсь с колонок на наушники, мне нужно видео остановить(если в браузере, перегрузить страницу) или закрыть плеер и открыть снова, иначе висяк. Если я выключаю колонки из диспетчера звуковых устройств, всё работает корректно, автоматом включаются наушники и наоборот, когда включаю колонки, автоматом вырубаются наушники

Ну... не знаю, что предложит Хакер, может как-то программно... но у меня вот тоже звуковая карта Sound Blaster старенькая еще PCI-ная обычная и тоже колонки и наушники. Я решил подобную проблему несколько иначе. Купил в любом компьютерном магазине (можно заказать и на Ali) вот такой маленький переходник...
Изображение
Стоит он 3 копейки, а польза в том, что Вы вставляете его в один звуковой выход на звуковой карте, который раздваивается на два канала. В один... я вставил наушники, а в другой - колонки. Таким образом у меня одновременно работают и наушники и колонки, а переключаюсь я между ними просто регулятором громкости. Если нужны наушники, то я выключаю колонки или скручиваю громкость на них. А если нужны колонки то наоборот - громкость наушников скручиваю, а на колонках накручиваю. А можно наушники вообще не трогать, дело в том, что когда работают колонки, то звук в наушниках не слышно и не мешает ничего никому. Вот и все. Нет никаких проблем! Может быть такой вариант будет оптимальным, нежели заморачиваться с Devic'ами??? :roll:

Vova_2581
Постоялец
Постоялец
 
Сообщения: 376
Зарегистрирован: 10.01.2010 (Вс) 18:08

Re: Как программно отключить Audio Device?

Сообщение Vova_2581 » 18.05.2018 (Пт) 15:04

Кстати, звук стерео... так что все ок! Подумайте...

Mikle
Изобретатель велосипедов
Изобретатель велосипедов
Аватара пользователя
 
Сообщения: 4148
Зарегистрирован: 25.03.2003 (Вт) 14:02
Откуда: Туапсе

Re: Как программно отключить Audio Device?

Сообщение Mikle » 18.05.2018 (Пт) 15:54

Vova_2581 писал(а):звук стерео... так что все ок!

Противоречие:
TrueTrue писал(а):Колонки 5.1 и наушники

Teranas
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 224
Зарегистрирован: 13.12.2008 (Сб) 4:26
Откуда: Новосибирск

Re: Как программно отключить Audio Device?

Сообщение Teranas » 18.05.2018 (Пт) 16:41

Из простых решений:
http://support.microsoft.com/?kbid=311272

или
SetupDiGetClassDevs
SetupDiEnumDeviceInterfaces
SetupDiGetDeviceInterfaceDetail
и так далее
С уважением, Андрей.

TrueTrue
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 167
Зарегистрирован: 20.05.2009 (Ср) 23:18

Re: Как программно отключить Audio Device?

Сообщение TrueTrue » 18.05.2018 (Пт) 22:50

Vova_2581 писал(а):Кстати, звук стерео... так что все ок! Подумайте...

Вова, у меня 6 гнёзд, 5 под колонки и одно, Line Out отдельно на наушники, я уже думал про твой вариант. Но тогда мне нужен Тумблер на 16 каналов хотя бы в двух позициях, что бы спаять переключатель. Не катит такой вариант.

TrueTrue
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 167
Зарегистрирован: 20.05.2009 (Ср) 23:18

Re: Как программно отключить Audio Device?

Сообщение TrueTrue » 18.05.2018 (Пт) 22:53

Teranas писал(а):Из простых решений:
http://support.microsoft.com/?kbid=311272

или
SetupDiGetClassDevs
SetupDiEnumDeviceInterfaces
SetupDiGetDeviceInterfaceDetail
и так далее


DevCon - это самое первое, что мне пришло в голову. Но почитал команды, в командной строке, насколько я понял, он может отрубить всю звуковую в целом, как она видится в Диспетчере Задач. Как отключить отдельно, колонки, не нашёл. Посмотрю ещё раз.
Если нет, попробую копать сюда:
SetupDiGetClassDevs
SetupDiEnumDeviceInterfaces
SetupDiGetDeviceInterfaceDetail

и ещё, програмку одну раздобыл в интернете, разберусь настрою, если получится отпишу.

Огромное спасибо, всем за участие. :D

Teranas
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 224
Зарегистрирован: 13.12.2008 (Сб) 4:26
Откуда: Новосибирск

Re: Как программно отключить Audio Device?

Сообщение Teranas » 19.05.2018 (Сб) 4:30

Есть ещё один простой вариант:
Код: Выделить всё
[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{4D36E96C-E325-11CE-BFC1-08002BE10318}\0000\MixerSettings\eLineOutTopo\PrimaryNode001]
"Chan000"=dword:00000001
"Chan001"=dword:00000001
"Chan002"=dword:00000001
"Chan003"=dword:00000001
"Chan004"=dword:00000001
"Chan005"=dword:00000001
"Chan006"=dword:00000001
"Chan007"=dword:00000001

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{4D36E96C-E325-11CE-BFC1-08002BE10318}\0000\MixerSettings\eLineOutTopo\PrimaryNode001]
"Chan000"=dword:00000001
"Chan001"=dword:00000001
"Chan002"=dword:00000001
"Chan003"=dword:00000001
"Chan004"=dword:00000001
"Chan005"=dword:00000001
"Chan006"=dword:00000001
"Chan007"=dword:00000001


00000000 - Включено
00000001 - Выключено
С уважением, Андрей.

TrueTrue
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 167
Зарегистрирован: 20.05.2009 (Ср) 23:18

Re: Как программно отключить Audio Device?

Сообщение TrueTrue » 19.05.2018 (Сб) 8:18

Teranas писал(а):Есть ещё один простой вариант:
Код: Выделить всё
[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{4D36E96C-E325-11CE-BFC1-08002BE10318}\0000\MixerSettings\eLineOutTopo\PrimaryNode001]
"Chan000"=dword:00000001
"Chan001"=dword:00000001
"Chan002"=dword:00000001
"Chan003"=dword:00000001
"Chan004"=dword:00000001
"Chan005"=dword:00000001
"Chan006"=dword:00000001
"Chan007"=dword:00000001

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{4D36E96C-E325-11CE-BFC1-08002BE10318}\0000\MixerSettings\eLineOutTopo\PrimaryNode001]
"Chan000"=dword:00000001
"Chan001"=dword:00000001
"Chan002"=dword:00000001
"Chan003"=dword:00000001
"Chan004"=dword:00000001
"Chan005"=dword:00000001
"Chan006"=dword:00000001
"Chan007"=dword:00000001


00000000 - Включено
00000001 - Выключено

Хм. :scratch: оригинальное решение,попробую. :D Спасибо!


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: Google-бот, SemrushBot, Yandex-бот и гости: 17

    TopList