Zugriff auf die Master Lautstärke über C#
-
Hi!
Ich komme nicht weiter und bräuchte etwas Hilfe. Ich versuche mit C# über die
Windows API die Master Lautstärke von Windows auszulesen.
Dafür habe ich folgenden Code geschrieben:using System; using System.Runtime.InteropServices; namespace VolumeAPI { class Class1 { [DllImport("Winmm.dll")] public static extern int auxGetVolume(long uDeviceID, long lpdwVolume); static void Main(string[] args) { long testVolume = new long(); int retval = auxGetVolume(0,testVolume); System.Console.WriteLine("Die Lautstärke ist: "+testVolume.ToString()); System.Console.WriteLine("Fehlercode: "+retval.ToString()); System.Console.Read(); } } }
Die Konsolenausgabe lautet:
Die Lautstärke ist: 0
Fehlercode: 11Fehlercode 11 bedeutet laut MMSystem.h, dass einer der Parameter von
auxGetVolume ungültig ist.
Was mach ich da falsch????Gruss
-
Müsste es nicht irgendwie so aussehen:
DWORD testVolume; int retval = auxGetVolume(0,&testVolume);
-
Eigendlich schon, nur gibt es bei C# ja leider weder
einen DWORD Wert noch Pointer.Habs auch schon mit dem ref Keyword versucht, hat aber auch nichts gebracht.
[DllImport("Winmm.dll")] public static extern int auxGetVolume(long uDeviceID, ref long lpdwVolume);
long testVolume = new long(); int retval = auxGetVolume(0,ref testVolume);
-
Da es sich hier eh wohl eher um ein C#- als um ein WinAPI-Problem handelt, und du dort eh einen Thread erstellt hast mach ich diesen hier mal zu