Здравствуйте!
Я хочу получить уровень общей громкости в системе. Для этого написал такую функцию
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 — на одном компьютере это работает, на другом нет (это я к тому, что остальной код рабочий). Зарание всем спасибо!