Cambia dispositivo audio predefinito su Windows 7

Voglio essere in grado di cambiare il dispositivo di output audio predefinito su Windows 7 usando C # (e probabilmente anche alcune chiamate API Win32 sottostanti). Ho già fatto i miei compiti e ho ascoltato molti commenti misti da diverse fonti, quindi ho voluto chiedere ancora una volta questa domanda per ottenere una risposta diretta. Questo è effettivamente ansible (attraverso qualsiasi mezzo)? Se è così, come potrei fare questo?

E per favore non suggerire una soluzione con “AutoIt” ​​o qualche altro programma simile … questa è una domanda specifica per C # /. NET.

Nel caso in cui qualcuno si imbatta in questo thread in futuro … ecco un codice C ++ che lo farà chiamando alcune API Win32 non documentate. Questo può essere compilato in un file EXE e quindi chiamato silenziosamente da un’applicazione .NET, in modo da poter creare un programma .NET attorno a questo codice.

http://www.daveamenta.com/2011-05/programmatically-or-command-line-change-the-default-sound-playback-device-in-windows-7/

Una risposta poco aggiornata, che è compatibile con Windows 10 .

Questo programma è in grado di farlo in modo bello (tasto di scelta rapida per passare da dispositivi pre-selezionati) ed è scritto su C #: SoundSwitch su GitHub

Alcuni reverse engineering dovrebbero portarti lì (per il mio uso questo programma era perfetto così com’è).

Fa uso di quella libreria (stesso autore) che è in C ++: AudioEndpointLibrary su GitHub

Quindi se conosci il C ++ (che non è abbastanza), potresti andare oltre nell’analisi di come funziona. O semplicemente usa la libreria come fa SoundSwitch.