Lautstärkeregelung

Baron Sengir

Mitglied
Hallo Ihr Lieben,

ich möchte mit meinem Programm auf die "Lautstärkeregelung" von Win XP zugreifen. Könnt Ihr mir ein Tutorial oder eine Site empfehlen, wo erklärt wird, wie ich entweder drauf zugreifen kann, oder aber die "Lautstärkeregelung" geöffnet wird. Oder ist das so einfach, dass Ihr mir das hier gleich erklären könnt? Für Eure Hilfe bin ich, wie sonst natürlich auch, sehr dankbar.

Ich muss noch erwähnen, dass in meinem PC 2 Soundkarten stecken, die ich auch unabhängig voneinander ansteuern muss.

Liebe Grüße

Markus
 
Ich kann es Dir leider auch nicht direkt sagen, aber im MSDN gibt es eine Beispielapplikation "MixApp: Sample Mixer Application". Die macht genau solche Sachen. Schau' sie Dir doch mal an, vielleicht hilft es Dir ja, ist allerdings nicht so ganz leicht zu durchschauen. Ein kleiner Tipp: Im MAKEFILE bei den Makefile-Variablen OTHERCLOPTS und OTHERRCOPTS jeweils ein -DDEBUG einfügen, das schaltet die Debug-Ausgaben an.
Nähere Infos zu den Mixer-Funktionen gibt es im MSDN unter Plattform-SDK\Graphics and Multimedia Services\Multimedia Audio\Audio Mixers.
 
Hi,

ich habe nach einem Tipp von einem Kumpel eine Lösung gefunden, die Lautstärkeregelung aufzurufen.

Das klappt mit:

Code:
ShellExecute(NULL, "open", "sndvol32.exe", NULL, "C:/WINDOWS/system32" , SW_SHOW);

Nur entsteht jetzt folgendes Problem: "C:/WINDOWS" ist ja nicht immer das Windows-Verzeichnis. Das kann ja auf jedem Rechner anders sein.

Wo speichert Windows diesen Pfad ab, so dass ich ihn abfragen kann, damit Programm auch auf anderen Rechnern sicher läuft und nicht nur auf meinem. :confused:

LG

Markus
 
Für das Windows-Verzeichnis gibt es die Systemvariable %WINDIR%. Ich weiß allerdings nicht, ob man das so im Aufruf verwenden kann. Probier einfach mal
Code:
ShellExecute(NULL, "open", "sndvol32.exe", NULL, "%WINDIR%/system32" , SW_SHOW);
Diese Methode öffnet jedoch lediglich den Windows-Mixer. Mit den Mixer-Funktionen kannst Du die Funktionalität selber nachbilden, ohne auf externe Programme zurückgreifen zu müssen. Sollte nämlich irgendwann die Datei sndvol32.exe auf einem Rechner fehlen oder kaputt sein, läuft Dein Programm nicht mehr.
 
Danke für die Tipps.

Für diese Woche reicht die Notlösung, da am Samstag und Sonntag eine Beta-Version der Software auf mehreren Rechnern laufen muss und da ist jeweils eine heile Windows-Welt drauf.

Im zweiten Schritt, also ab nächste Woche werden dann die Mixerfuntionen richtig implementiert. Ich habe mal mit Deinem Tipp in die MSDN geschaut. Ist schon recht komplex. Ich glaube, das ist für mich bis Samstag bugfrei nicht zu schaffen, dann lieber so und es funktioniert. Aber Danke für den Hinweis, das ist schon das, was ich brauche.

Das mit dem Windir habe ich nun auch lösen können. (%WINDIR%) hat bei mir nicht geklappt. Weiß der Geier warum.

Aber so klappt es:

Code:
DWORD nSize;   
char sysdir_name[MAX_PATH];   
GetSystemDirectory(sysdir_name, sizeof(sysdir_name));   
ShellExecute(NULL, "open", "sndvol32.exe", NULL, sysdir_name , SW_SHOW);

Liebe Grüße und Danke

Markus

PS: Für weitere Hinweise zum Integrieren der Mixerfunktionen bin ich weiterhin sehr empfänglich und dankbar
 
Zurück