|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
25.12.2011, 21:40 | #21 |
Delphi 7
Форумчанин
Регистрация: 10.02.2009
Сообщений: 354
|
у меня чета не пашет! (( регулирует только окошко проекта.
Дайте мне власть и я переверну ваш мир!...
|
26.12.2011, 00:18 | #22 |
Форумчанин
Регистрация: 16.12.2009
Сообщений: 902
|
Сделай изменения
Код:
Можно было бы все в Aux громкость общую менять но вдруг понадобиться отделно регулировать звук и музыку. Последний раз редактировалось Aliens_wolfs; 26.12.2011 в 01:26. |
26.12.2011, 01:16 | #23 | |
Регистрация: 16.07.2011
Сообщений: 3
|
Цитата:
|
|
27.12.2011, 20:37 | #24 |
Delphi 7
Форумчанин
Регистрация: 10.02.2009
Сообщений: 354
|
даже здесь он не меняет ((( VKMusic4.exe
Дайте мне власть и я переверну ваш мир!...
|
28.12.2011, 20:37 | #25 |
Участник клуба
Регистрация: 07.12.2011
Сообщений: 1,025
|
точно не знаю, но похоже waveOut похоже у каждого приложения "свой" и регулируется только свое...
значит нужно стать "своим" инжектиться в целевое приложение и уже в инжекте регулировать
Не стесняемся, плюсуем!
|
28.12.2011, 23:19 | #26 |
Delphi 7
Форумчанин
Регистрация: 10.02.2009
Сообщений: 354
|
вот это я и пытаюсь понять - как?!
Дайте мне власть и я переверну ваш мир!...
|
29.12.2011, 07:43 | #27 |
Форумчанин
Регистрация: 16.12.2009
Сообщений: 902
|
Код который я написал выше должен работать у тебя там MIDI его регулировать по другому нужно
|
29.12.2011, 10:07 | #28 |
Старожил
Регистрация: 13.08.2009
Сообщений: 2,581
|
Прежде всего замечу, что вопрос не имеет смысла для Windows XP и ниже - там не существует понятия per-application volume, там есть только master volume. Поэтому этот вопрос можно рассматривать только в Windows Vista и выше.
Мат-чать по контролю громкости в Windows Vista и Windows 7. Подробнее. Соответственно, как я понимаю, тебе нужен "Simple Value" для конкретного приложения. Для получения сессии приложения можно использовать IAudioSessionManager. Аудио сессия идентифицируется двумя или тремя вещами: GUID сессии, ID процесса и флагом кросс-процессности (если флаг установлен, то ID процесса игнорируется). "Simple volume" контролирует громкость всех аудио потоков в одной аудио сессии. Большинство аудио-библиотек (включая Legacy-функции, DirectSound и т.п.) используют GUID_NULL в качестве идентификатора сессии. Но если приложение само указывает другой GUID, то у сессии будет иной GUID. В одном приложении может быть несколько сессий. Хотя самый типичный случай - одна сессия. Регулятор громкости в системе, на самом деле, тебе врёт. Не существует такой вещи как "громкость приложения ABC". Регулятор громкости просто берёт все аудио сессии в системе и группирует их вместе, помечая их согласно ID процесса. Так что в общем случае у тебя может быть показано более одного ползунка для одной программы (если она использует две аудио-сессии), равно как и разделяемые сессии, не принадлежащие приложению (и тогда они будут не подписаны). Теперь что касается ответа на вопрос... мне лень копать. Могу набросать примерный план-набросок. Рекомендую глянуть в сторону IAudioSessionEnumerator - им можно перечислить сессии для устройства. План действий (примеры кода см. по ссылкам): - Создаём IMMDeviceEnumerator (CoCreateInstance). - У него вызываем метод GetDefaultAudioEndpoint для получения устройства по умолчанию (динамики). - У него вызываем метод Activate для получения менеджера сессий. - У менеджера сессий вызываем GetSessionEnumerator для получения энумератора. - Вызываем энумератор для перечисления сессий. - Имя сессии можно узнать GetDisplayName, иконку - через GetIconPath, а её GUID - через GetGroupingParam. - Получаем регулятор громкости сессии вызовом метода GetSimpleAudioVolume у менеджера сессий, передав ему GUID сессии с предыдущего пункта (не уверен, но можно попробовать запросить регулятор у сессии напрямую через QueryInterface). - Контролируем громкость каждой сессии. С тебя 500 рублей :P
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы.
|
29.12.2011, 12:07 | #29 | |
Старожил
Регистрация: 29.09.2009
Сообщений: 9,713
|
Цитата:
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation |
|
22.01.2012, 21:53 | #30 |
Delphi 7
Форумчанин
Регистрация: 10.02.2009
Сообщений: 354
|
хм.. долговато чета я вожусь и не пойму ((
Дайте мне власть и я переверну ваш мир!...
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
как выключить компъютер команлдой в С++ | angelada | Помощь студентам | 10 | 19.01.2011 19:47 |
Как в окне delphi открыть приложение word | Juliya_1_04 | Компоненты Delphi | 5 | 04.10.2010 22:36 |
Как выключить один из двух мониторов? | Silentdi | Общие вопросы Delphi | 3 | 17.09.2010 14:02 |
Как програмно выключить комп?? | Дима я | Общие вопросы Delphi | 3 | 23.10.2009 00:14 |
как выключить/перезагрузить компьютер | motaro | Паскаль, Turbo Pascal, PascalABC.NET | 1 | 28.03.2008 02:01 |