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: 11

    Fehlercode 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


Anmelden zum Antworten