Master Lautstärke ändern

Andreas Busat

Grünschnabel
Ich muss im Rahmen einer Projektarbeit mit C die Master-Lautstärke von Windows ändern. Ich muss dabei glaube ich irgendwie mit der minmm.dll arbeiten. Habe aber keine Ahnung wie das gehen kann. Über jede Hilfe wäre ich froh.
 
Wahrschienlich meinst du die winmm.lib? Die hat mit Multimedia zu tun. Such mal in der MSDN Lib nach MCI_OPEN und weiteren MCI-Funktionen - mit denen sollte es gehen. Ich habe das alles allerdings selbst noch nicht ausprobiert, ausser dem Abspielen von Midifiles.

MCI
The Media Control Interface (MCI) provides standard commands for playing multimedia devices and recording multimedia resource files. These commands are a generic interface to nearly every kind of multimedia device.
 
Kleiner Tipp

Hallo zusammen,

Zuerst mal verwendest du die mmSystem.dll im %SystemRoot%\System32.



Der Folgende Code ist in Delphi geschrieben, es sollte aber kein Problem sein, ihn in C zu konvertieren. ACHTUNG: Hier behandle ich WAVEOUT und nicht den MASTER!

//----------- CODE START ------------------------

//Lautstärke auslesen
procedure GetVolume(var volL, volR: Word);
var
hWO : HWAVEOUT;
waveF : TWAVEFORMATEX;
vol : DWORD;
begin
volL:= 0;
volR:= 0;
FillChar(waveF, SizeOf(waveF), 0);
waveOutOpen(@hWO, WAVE_MAPPER, @waveF, 0, 0, 0);
waveOutGetVolume(hWO, @vol);
volL := vol and $FFFF;
volR:= vol shr 16;
waveOutClose(hWO);
end;

//Lautstärke einlesen
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);
vol:= volL + volR shl 16;
waveOutSetVolume(hWO, vol);
waveOutClose(hWO);
end;

//Boga Aufruf
procedure TForm1.setVol(step : Integer);
var
VolLi, VolRe: Word;
begin
GetVolume(VolLi,VolRe);
SetVolume(VolLi,VolRe);
end;

//----------- CODE END ------------------------

Hoffe es nützt dir was, sonst schaust du einmach mal auf der Microsoft seite vorbei und guckts dir die MAPI Referenc in MSDN an.
 
Zurück