Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Низкоуровневое программирование > Win Api
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 15.08.2007, 09:19   #1
ЧИЖ
Форумчанин
 
Аватар для ЧИЖ
 
Регистрация: 24.02.2007
Сообщений: 104
Вопрос Системная громкость

Как прочитать и как изменить значения системного регулятора громкости а желательно даже всех регуляторов (передние, задние, саб, и т д)?
Разберемся.......
ЧИЖ вне форума Ответить с цитированием
Старый 15.08.2007, 09:28   #2
Alex21
With best regards
Участник клуба
 
Регистрация: 20.04.2007
Сообщений: 1,448
По умолчанию

http://programmersforum.ru/showthrea...light=MMSystem
Alex21 вне форума Ответить с цитированием
Старый 15.08.2007, 12:17   #3
mutabor
Телепат с дипломом
Старожил
 
Аватар для mutabor
 
Регистрация: 10.06.2007
Сообщений: 4,929
По умолчанию

Управление системным микшером
Код:
uses MMSystem;

var leftcn, rightcn: word; 

function GetWaveVolume(var LVol: DWORD; var RVol: DWORD): Boolean;
 var
   WaveOutCaps: TWAVEOUTCAPS;
   Volume: DWORD;
 begin
   Result := False;
   if WaveOutGetDevCaps(WAVE_MAPPER, @WaveOutCaps, SizeOf(WaveOutCaps)) = MMSYSERR_NOERROR then
     if WaveOutCaps.dwSupport and WAVECAPS_VOLUME = WAVECAPS_VOLUME then
     begin
       Result := WaveOutGetVolume(WAVE_MAPPER, @Volume) = MMSYSERR_NOERROR;
       LVol   := LoWord(Volume);
       RVol   := HiWord(Volume);
     end;
 end;

 function SetWaveVolume(const AVolume: DWORD): Boolean;
 var
   WaveOutCaps: TWAVEOUTCAPS;
 begin
   Result := False;
   if WaveOutGetDevCaps(WAVE_MAPPER, @WaveOutCaps, SizeOf(WaveOutCaps)) = MMSYSERR_NOERROR then
     if WaveOutCaps.dwSupport and WAVECAPS_VOLUME = WAVECAPS_VOLUME then
       Result := WaveOutSetVolume(WAVE_MAPPER, AVolume) = MMSYSERR_NOERROR;
 end;

procedure vol_set;
 var
   LVol: Word;
   RVol: Word;
 begin
   LVol := leftcn;  // max. is 65535
  RVol := rightcn;  // max. is 65535
  SetWaveVolume(MakeLong(LVol, RVol));
 end;

procedure vol_get;
 var
   LVol: DWORD;
   RVol: DWORD;
 begin
   if GetWaveVolume(LVol, RVol) then
   begin
     leftcn := LVol;
     rightcn := RVol;
   end;
 end;
The future is not a tablet with a 9" screen no more than the future was a 9" black & white screen in a box. It’s the paradigm that survives. (Kroc Camen)
Проверь себя! Онлайн тестирование | Мой блог
mutabor вне форума Ответить с цитированием
Старый 22.08.2007, 21:23   #4
CronEtc
 
Аватар для CronEtc
 
Регистрация: 22.08.2007
Сообщений: 4
По умолчанию

Регулировка громкости системы

uses
MMSystem;
procedure SetVolume(const volL,volR: Word)
var
hWo:HWAVEOUT;
waveF:TWAVEFORMATEX;
vol:DWORD;
begin
FillChar(waveF, sizeof(waveF),0);
waveOutOpen(@hWO, WAVE_MAPPER, @waveF, 0, 0, 0);
waveOutSetVolume(hWO, vol);
waveOutClose(hWO);
end;

вот так можно вызвать эту процедуру к примеру:

SetVolume(14000,14000);
Знаешь?-Подскажи. Не знаешь?-Спрашивай.

Последний раз редактировалось CronEtc; 22.08.2007 в 21:25.
CronEtc вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Повышаем громкость Veiron Свободное общение 9 29.05.2008 20:40
Системная папка! Oleg Romanchuk Свободное общение 7 31.08.2007 21:46
Громкость в MediaPlayer D-fens Компоненты Delphi 3 12.06.2007 13:13