Общая громкость
От: alex870  
Дата: 08.02.05 10:06
Оценка:
Здравствуйте!
Я хочу получить уровень общей громкости в системе. Для этого написал такую функцию
function GetVolume: Cardinal;

var
  MCD: TMixerControlDetails;
  MCDS: TMixerControlDetailsSigned;
  Mixer: HWND;
  ControlID : Cardinal;
begin
  MixerOpen(@Mixer, 0, 0, 0, 0);
  //mixerGetID(Mixer,ControlID,??????);
  FillChar(MCD,SizeOf(MCD),0);
  MCD.cbStruct := SizeOf(MCD);
  MCD.dwControlID := ControlID;
  MCD.cChannels := 1;
  MCD.cbDetails := sizeOf(MCDS);
  MCD.paDetails := @MCDS;
  MixerGetControlDetails(Mixer,@MCD,MIXER_GETCONTROLDETAILSF_VALUE);
  Result := MCDS.lValue;
end;


Только вот не знаю как получить ControlID именно для общей громкости, да и вообще, нужно ли для этого использовать функцию mixerGetID или это както иначе делается?
Пробовал вместо ControlID подставлять 1 — на одном компьютере это работает, на другом нет (это я к тому, что остальной код рабочий). Зарание всем спасибо!
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.