Przełączanie domyślnego urządzenia audio za pomocą pliku wsadowego

22

Próbuję napisać plik wsadowy w systemie Windows 10, który pozwala mi przełączać się między zestawem słuchawkowym a głośnikami jako domyślnym urządzeniem audio po uruchomieniu. Nie chcę używać żadnego oprogramowania innych firm.

Próbowałem szukać, ale znalazłem tylko stare skrypty, które wydają się nie działać, a także odnoszą się do HKCU:\Software\Microsoft\Windows\CurrentVersion\Applets\Volume Control\ścieżki, która już nie istnieje. Nie mogę znaleźć żadnych informacji na ten temat w rejestrze systemu Windows 10, a także nie czuję się zbyt dobrze, aby bawić się rejestrem, jeśli nie jestem pewien, co robię.

zerothehero
źródło
1
Jeśli rezygnujesz z tego, że nie chcesz używać innych firm, korzystam z audioswit.ch/er [tak, to jest prawdziwy adres URL] od około 5 lat. Przełączany również klawiszem skrótu. [brak przynależności.]
Tetsujin,

Odpowiedzi:

33

Rozumiem, że nie chcesz używać żadnego oprogramowania innych firm, ale jako opcję, jeśli nie masz nic przeciwko użyciu exe ~ 100kb, możesz użyć Nircmd z poleceniami:

nircmd setdefaultsounddevice "Speakers" 1

lub

nircmd setdefaultsounddevice "Headphones" 1

Musisz upewnić się, że używasz dokładnej nazwy urządzeń audio wymienionych na liście Playback Devices(kliknij prawym przyciskiem myszy kontrolkę dźwięku w zasobniku systemowym). Zmiana nazwy Propertiesna prostszą może być łatwiejsza , szczególnie jeśli nazwy kolidują w jakikolwiek sposób.

Na 1końcu polecenia oznacza „Domyślne urządzenie”. Użycie 2oznacza „Domyślne urządzenie komunikacyjne”.


Jeśli naprawdę nie chcesz używać narzędzia innej firmy, oto różnica klucza rejestru, który wydaje się zmieniać po zmianie domyślnego urządzenia dźwiękowego, może być dla ciebie przydatny, ale nie wiem dokładnie, co robi. Wydaje się, że nie jest tak proste jak 1 lub 0, aby wskazać, czy jest to ustawienie domyślne.

wprowadź opis zdjęcia tutaj

Jonno
źródło
+1 ode mnie To najlepsza droga. Jeśli naprawdę nie chcesz mieć nircmd gdzieś na dysku twardym (uwierz mi, że chcesz, to świetnie), alternatywą byłoby dwukrotne przełączenie go i dokonanie eksportu reg klucza wymienionego tutaj i wykonanie odpowiedniego .reg plik. Nie jestem pewien, czy to zadziała, ale takie byłoby moje alternatywne podejście.
LPChip
Dzięki za odpowiedź, naprawdę natknąłem się na nircmd, ale byłem naprawdę ciekawy, jak znaleźć sposób na zrobienie tego bez żadnego oprogramowania innych firm. Jeśli nie wyjdzie żadna inna metoda, rozważę jej użycie.
zerothehero
+1. Wypróbowałem podejście do rejestru, ale nie jest to tak łatwe, jak sugerowano (przynajmniej w przypadku W10). Używam również NirCmd teraz :)
MBaas
6

Od Windows 8 (a może wcześniej?) Konfiguracja audio komputera jest przechowywana w HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\MMDevices\Audio\Render. Poniżej Renderznajdują się klucze o nazwie GUID, każdy zawierający DeviceStatewartość dword w katalogu głównym. Ale jak to jest kodowane?

Zobacz Stałe DEVICE_STATE_XXX w MSDN :

  • 1 aktywny
  • 2 Wyłączone
  • 4 Nieobecne
  • 8 Unplugged

Skrypt PowerShell / Bat do przełączania między 1 a 2 powinien załatwić sprawę.

EDIT: Aby uzyskać nazwę urządzenia w postaci czytelnej dla człowieka, czytać {b3f8fa53-0004-438e-9003-51a46e139bfc},6pod Propertiespodklucz

Aziz Kabyshev
źródło
Cześć Aziz, próbowałem tego pod W10, ale zadziałało to tylko raz - i kiedy próbowałem przełączyć się na poprzednie urządzenie w trybie wsadowym, nagle zniknęło z listy, którą otrzymujesz po kliknięciu ikony tacki dla dźwięku. Odkryłem również, że najpierw muszę uzyskać uprawnienia do tego klucza rejestru (patrz groovypost.com/howto/… )
MBaas