Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Программирование и базы данных (http://forum.oszone.net/forumdisplay.php?f=21)
-   -   [решено] Windows 7 - отключить (включить) звук. (http://forum.oszone.net/showthread.php?t=238853)

Real Root 18-07-2012 14:15 1954212

Windows 7 - отключить (включить) звук.
 
Товарищи, помогите плиз:
Есть программа управления компьютерым клубом (инетрнет кафе). При неоплаченном компьютере звук должен отключаться. С переходом на Windows 7 для каждой программы теперь есть свой микшер. Поэтому программа блокирует звук только на своем микшере. Программа уже лет 8 не развивается, но при этом все остальные функции на Win 7 работают - только звук не блокирует. Какой выход я вижу - написать программу, которая будет следить за состоянием микшера звука программы управления и выставлять данное состояние системному микшеру. Такое возможно? Если да, то помогите с написанием подобного. Если это VBScript - о справлюсь и сам, а если на Делфи или другом, то тут не смогу - не программист я - сисадмин. Хотя если будет полный исходник, то могу и сам откомпилить.
Выручайте пожалуйста.

Beyound 18-07-2012 17:40 1954337

попробуй отключать сами звуковые устройства через winapi. вот тут есть примеры. одтедить звук можно по классу устройства - media. по идеи должно сработать

Real Root 18-07-2012 19:58 1954428

Beyound, да я сейчас более радикальный метод придумал - просто тупо Windows Audio останавливаю. Но проблема тут в другом - как определить когда звук нужно включить? Единственный метод - следить за микшером "допотопной программы", и когда у нее звук блочится, останавливатьб службу, а когда включен, то запускать - только как - даже придумать не могу. Да и реально ли вообще?

Beyound 18-07-2012 20:27 1954441

чтото я не очень понял что ты имел в виду. вроде же кончилось время - звук потух. время оплатили - звук заработал... разве не так?

Real Root 18-07-2012 22:13 1954500

Цитата:

Цитата Beyound
чтото я не очень понял что ты имел в виду. вроде же кончилось время - звук потух. время оплатили - звук заработал... разве не так? »

Должно быть так как вы написали. Прога блокирует звук через WinApi - исходников само собой нет.
В XP все прекрасно работало. А вот в Windows 7 для каждой задачи есть свой микшер. И поэтому прога блокирует звук лишь самой себе. Мне нужно сделать скрипт или прогу которая будет следить за микшером проги и в зависимости от его состояния включать или выключать звук. Такое реально сделать?

LilLoco 18-07-2012 23:22 1954539

Real Root, а обязательно ли следить за микшером той программы? Возможно ли определить, что компьютер заблокирован другими способами, как например, самое банальное, по заголовку окна программы? Ведь это гораздо проще определить, чем состояние микшера отдельного приложения,имхо. Что представляет из себя та программа?

Real Root 18-07-2012 23:45 1954550

Цитата:

Цитата LilLoco
Real Root, а обязательно ли следить за микшером той программы? Возможно ли определить, что компьютер заблокирован другими способами, как например, самое банальное, по заголовку окна программы? Ведь это гораздо проще определить, чем состояние микшера отдельного приложения,имхо. Что представляет из себя та программа? »

Блин! А ведь гениальная идея! Этож я даже на VBS теперь могу написать...
Ё-моё, вы не представляете как я вам благодарен за эту идею!!! Все гениально просто!
Мне бы такое и в голову не пришло - там у программы окна нет - хотел вам написать, но посмотрел диспетчер задач - а оказывается в режиме блокировки невидимое окно (на которое переводится фокус) все же имеется.
Еще бы программным методом можно было бы блокировать системный микшер (например через WMI) - было бы просто идеально. Вообще nircmd это умеет делать, но запускать каждый раз программу - не рационально. Гораздо проще в память повесить скрипт который будет каждую секунду смотреть активное окно и включать или откючать звук в зависимости от состояния окна...


Время: 19:55.

Время: 19:55.
© OSzone.net 2001-