Windows Lautstärke (lesen/setzen)

AckiB

Mitglied
Hi,
ich möchte die Lautstärke auslesen und setzen.
Ich meine den Wert des Lautstärkereglers im Systray von Windows !
Es sollte eigentlich mit Hilfe der Windows API gehen, aber ich weiß nicht wie.
Ich habe es so versucht:

double GetWaveVolumePercent(bool blLeft){
unsigned long ulCurrentVolume = 0;
if(waveOutGetVolume(0, (LPDWORD) &ulCurrentVolume) == MMSYSERR_NOERROR){
if(blLeft) return double(double(LOWORD(ulCurrentVolume))*100.0/65535.0);
else return double(double(HIWORD(ulCurrentVolume))*100.0/65535.0);
}
else return 0.0;
}

bool SetWaveVolumePercent(double dlValue, bool blLeft){
unsigned long ulCurrentVolume = 0;
if(dlValue < 0.0) dlValue = 0.0;
else if(dlValue > 100.0) dlValue = 100.0;
if(waveOutGetVolume(0, (LPDWORD) &ulCurrentVolume) == MMSYSERR_NOERROR){
WORD ilNewVolume = int(double(65535.0)/100.0*dlValue);
if(blLeft) ulCurrentVolume = ulCurrentVolume & 0xFFFF0000 | ilNewVolume;
else ulCurrentVolume = ulCurrentVolume & 0x0000FFFF | ilNewVolume*0x10000;
return waveOutSetVolume(0, ulCurrentVolume) == MMSYSERR_NOERROR;
}
else return false;
}

Aber das ist nicht was ich möchte und funktioniert auch nicht richtig...
Ich möchte die Haupt-Lautstärke lesen/setzen !

Danke, Acki
 
Zurück