Potrzebowałem skryptu, który mógłby zmienić moje urządzenie wyjściowe między moimi głośnikami a słuchawkami, ponieważ często muszę się między nimi zmieniać i przechodzenie przez GUI zaczyna być denerwujące.
Po konsultacji to pytanie o przepełnienie stosu Dowiedziałem się o Nircmd , mały kawałek oprogramowania, który dodaje wiele przydatnych funkcji, w tym tę, której potrzebuję.
Skończyło się na tworzeniu dwóch plików wsadowych
setSpeakersAsOutput.bat:
nircmd.exe setdefaultsounddevice "Speakers"
setHeadPhoneAsOutput.bat:
nircmd.exe setdefaultsounddevice "EarForce X11"
Dodałem nircmd.exe do mojej ścieżki. Te dwa polecenia działają, gdy wykonuję je z wiersza poleceń, a także gdy wykonuję pliki „.bat” z mojego eksploratora plików, ale gdy mapuję wykonanie na makro klawiatury za pomocą oprogramowania Razer Synapse, nie działa . Widzę, że CMD pojawia się na sekundę i zamyka, jak się spodziewano, ale nie zmienia ustawień.
Moją jedyną hipotezą jest to, że wykonywanie tych skryptów wymaga administracyjnych przywilejów, aw konsekwencji nie mogą być uruchamiane przez oprogramowanie. Nawet jeśli jest to problem, nie mam pojęcia, jak go rozwiązać.
Każda pomoc byłaby mile widziana!
biegnę
- Windows 8.1
- Używam Razer Synapse do sterowania klawiaturą Razer BlackWidow Chroma
pause
na końcu mojego pliku i rzeczywiście dostałem błąd. „nircmd nie jest rozpoznawany jako polecenie wewnętrzne”. Kiedy powiedziałem, że dodałem nircmd do mojej ścieżki, zrobiłem to tylko w zmiennej użytkownika PATH. Po obejrzeniu tego błędu dodałem go do zmiennej System Path, ale nadal nie działa.
cd
do właściwego katalogu w pierwszym wierszu skryptu. Nie zapomnij dołączyć /d
jeśli znajduje się na innym dysku.
pause
jako ostatnie polecenie do partii, aby linia poleceń pozostała otwarta i czekał na naciśnięcie klawisza. Osobiście używam Przełącznik audio co działa dobrze dla mnie. Nie próbowałem skrótów klawiszowych, ale jest on wbudowany. Jeśli chcesz uruchomić partię jako administrator, musisz użyćrunas
(prawdopodobnie). Zobacz też: Jak kodować plik BAT, aby zawsze był uruchamiany w trybie administratora?