Existem maneiras de alternar o dispositivo de áudio padrão. No entanto, como não existe uma API publicada para isso, as técnicas envolvem principalmente hacks, como tentando enviar as chaves , o que não é muito robusto.
A API é mantida fechada e não documentada para evitar incompatibilidades de hardware, para que os fabricantes não briguem por ela como a página inicial padrão em um navegador. No entanto, alguém conseguiu
Lembre-se de que está usando uma API não documentada, portanto, pode invadir futuras versões do Windows.
Como já mencionado por Jerry, você pode criar atalhos com blocos , basta chamar o código C ++. Se você quiser usá-lo no .net, você também pode use um wrapper .
O código também é publicado no GitHub como AudioEndPointController , com documentação fácil de entender sobre como usá-lo:
> EndPointController.exe --help
Lists active audio end-point playback devices or sets default audio end-point
playback device.
USAGE
EndPointController.exe [-a] [-f format_str] Lists audio end-point playback
devices that are enabled.
EndPointController.exe device_index Sets the default playback device
with the given index.
OPTIONS
-a Display all devices, rather than just active devices.
-f format_str Outputs the details of each device using the given format
string. If this parameter is ommitted the format string
defaults to: "Audio Device %d: %ws"
Parameters that are passed to the 'printf' function are
ordered as follows:
- Device index (int)
- Device friendly name (wstring)
- Device state (int)
- Device default? (1 for true 0 for false as int)
- Device description (wstring)
- Device interface friendly name (wstring)
- Device ID (wstring)''
Ele também é embalado com o PlaybackDevice [Interruptor de saída de áudio]