Макрос клавиатуры для изменения звукового устройства по умолчанию

Windows 7, клавиатура Logitech G110

2 аудиоустройства (наушники и динамики)

Я надеюсь найти быстрый способ макросъемки для переключения на наушники и ключ для переключения на динамики.

У кого-нибудь есть хорошая программа или что-то в этом роде?

EDIT: Использование AHK, чтобы попытаться заставить эту задачу работать в надежде, к сожалению, не делает трюк. Я включил скриншот моего набора аудио, а также скриншот моего скрипта, который он сейчас сидит. Настройка звукаскрипт

Я также попытался снять флажок «показать отключенные устройства» и изменить сценарий как Down 1 и Up 1 соответственно. Он будет работать на одном устройстве, но он откажется переключиться на вторичное.

    Основано на этой статье .

    1. Загрузите и установите AutoHotkey .

    2. Откройте панель управления звуком. Это также можно выполнить, выполнив mmsys.cpl через поиск в меню «Пуск» или в диалоговом окне «Запуск».

    3. Обратите внимание, как далеко вниз по списку ваши желаемые параметры. На следующем изображении выход HDMI – это пункт 1, а текущие громкоговорители по умолчанию – это пункт 4.

      Снимок экрана панели управления звуком

    4. Измените следующий сценарий. F6 и F7 представляют собой ключ активации ( F6 и F7 ) ( * означает, что эта горячая клавиша применяется даже при нажатии таких модификаторов, как Ctrl ). Команда {Down #} указывает, как далеко вниз по списку. На ваших снимках экрана вы хотите {Down 3} для динамиков и {Down 4} для гарнитуры. Если вы добавляете или удаляете аудиоустройства или показываете / скрываете отключенные элементы, число будет меняться.

       *F6:: Run, mmsys.cpl WinWait,Sound ControlSend,SysListView321,{Down 3} ControlClick,&Set Default ControlClick,OK return *F7:: Run, mmsys.cpl WinWait,Sound ControlSend,SysListView321,{Down 4} ControlClick,&Set Default ControlClick,OK return 
    5. Запустите скрипт. Вы можете настроить сценарий на запуск при запуске, если хотите.


    Причина, по которой я называю это «взломом», – это сценарий, который фактически открывает панель управления (окно GUI). В идеале это можно сделать через командную строку, указав GUID звукового устройства.

    По-видимому, есть программа с CLI для переключения звуковых устройств. Вы указываете тот же номер в списке, что заставляет меня думать, что он не сильно отличается от «взлома» AutoHotkey. В любом случае, что-то вроде AHK было бы обязательным для привязки к горячей клавише.

    Audioswitch ( https://github.com/sirWest/AudioSwitch ) позволяет быстро менять звуковое устройство по умолчанию (щелчком по значку в трее), поддерживает горячие клавиши, показывает уровни громкости при нажатии и позволяет настраивать цвета для значка в трее Чтобы показать, какое устройство используется. Кроме того, это с открытым исходным кодом. Поэтому, если вам это не нравится, откиньте … (к радости вашего сердца).

    Второй ответ – Volume2 ( https://irzyxa.wordpress.com/ ), еще одна свободная (но не открытая) часть программного обеспечения. Вы можете установить горячие клавиши для изменения устройств. (Вы также можете, как было указано в другом ответе, изменить другие способы, но это не то, что спросил ОП, поэтому я не попал в него.) Теперь он заменил меня AudioSwitch, главным образом потому, что он позволяет больше Гибкие регулировки громкости (что опять-таки не было вопросом OP).

    Третий ответ – Audio Switcher. http://audioswit.ch/er . Он также позволяет изменять щелчок и горячие клавиши. Он не позволяет изменять громкость с помощью мыши, по крайней мере, в версии 1.

    Auto Hotkey как переключатель, используя ключ блокировки прокрутки.

    Вынимать элементы, отключая их (например, hdmi на вашем lcd и т. Д.),

    Я предпочитаю это, так как мне нужно только изменить звук, если он настроен на неправильный выбор. Нажатие кнопки scroll-lock переключает меня в правильную. Очень полезно, если я уже загружаю игру и понимаю, что это неправильно. Большинство игр необходимо перезапустить, если вы хотите изменить выход звука.

     ScrollLock:: toggle:=!toggle ;toggles up and down states. Run, mmsys.cpl WinWait,Sound ; Change "Sound" to the name of the window in your local language if toggle ControlSend,SysListView321,{Down 1} ; This number selects the matching audio device in the list, change it accordingly Else ControlSend,SysListView321,{Down 2} ; This number selects the matching audio device in the list, change it accordingly ControlClick,&Set Default ; Change "&Set Default" to the name of the button in your local language ControlClick,OK return 

    Следующий скрипт позволяет создать ярлык на рабочем столе, который переключает между двумя устройствами. Скрипт может нуждаться в модификации для правильных имен устройств и использует nircmd, который требует загрузки. Можно использовать горячую клавишу для ярлыка. В основном размещайте здесь запись. Значок и имя скрипта переключаются для отображения текущего устройства. Они могут выйти из синхронизации, поскольку нет проверки (нужна команда для получения текущего устройства по умолчанию).

     ' Set the audio device names to use(Speakers and Headphones/PC Headphones. Fixup dir to nircmdc Const ALL_USERS_DESKTOP = &H19& Const USER_DESKTOP = &h10& Const nircmd = "D:\Windows\Commands\Nircmdc" Const Device1 = "Speakers" Const Device1Name = "Speakers" Const Device2 = "PC Headphones" Const Device2Name = "Headphones" Set ws = CreateObject("Wscript.Shell") Set objShell = CreateObject("Shell.Application") Set objFolder = objShell.Namespace(USER_DESKTOP) Set objFolderItem = objFolder.ParseName(Device2Name +".lnk") if isNull(objFolderItem) or IsEmpty(objFolderItem) or (objFolderItem is Nothing) then Set objFolderItem = objFolder.ParseName(Device1Name + ".lnk") if isNull(objFolderItem) or IsEmpty(objFolderItem) or (objFolderItem is Nothing) then ' Creates shortcut on desktop to toggle between devices and sets the default to Speakers Set oMyShortcut = ws.CreateShortcut(objFolder.Self.Path + "\"+Device1Name+".lnk") oMyShortcut.WindowStyle = 0 OMyShortcut.TargetPath = WScript.ScriptFullName 'oMyShortCut.Hotkey = "ALT+CTRL+S" oMyShortcut.IconLocation = "C:\Windows\System32\mmres.dll, 0" oMyShortCut.Save ws.run nircmd + " setdefaultsounddevice """+Device1+""" 0", 0 ws.run nircmd + " setdefaultsounddevice """+Device1+""" 1", 0 ws.run nircmd + " setdefaultsounddevice """+Device1+""" 2", 0 msgbox "Desktop link created for """+Device1+""". "+Device1+" set as default!", 0, "Error" else ' Speaker was set, make headphones Set objShellLink = objFolderItem.GetLink objShellLink.SetIconLocation "C:\Windows\System32\mmres.dll", 2 objShellLink.Save() objFolderItem.Name = Device2Name ws.run nircmd + " setdefaultsounddevice """+Device2+""" 0", 0 ws.run nircmd + " setdefaultsounddevice """+Device2+""" 1", 0 ws.run nircmd + " setdefaultsounddevice """+Device2+""" 2", 0 end if else ' Headphones was set, make speakers Set objShellLink = objFolderItem.GetLink objShellLink.SetIconLocation "C:\Windows\System32\mmres.dll", 0 objShellLink.Save() objFolderItem.Name = "Speakers" ws.run nircmd + " setdefaultsounddevice """+Device1Name+""" 0", 0 ws.run nircmd + " setdefaultsounddevice """+Device1Name+""" 1", 0 ws.run nircmd + " setdefaultsounddevice """+Device1Name+""" 2", 0 end if 

    Настройка командного файла для запуска NirCmd была самым простым способом для меня, используя команду setdefaultsounddevice , то есть:

    Nircmd setdefaultsounddevice "Динамик 1"

    Это старый вопрос, но в итоге я потратил некоторое время на это, чтобы получить то, что хотел. Я изменил ответ Боба на изменение активного микрофона; Полезно для меня, так как у меня есть беспроводные USB-наушники, которые являются как аудиоустройством, так и устройством для прослушивания, но я недавно получил Windows 10, где может быть полезно, чтобы моя веб-камера слушала «Эй, Кортана …».

    Для каждой функции на второй строке SysListView321 введите индекс микрофона, который вы хотите использовать, аналогично аудиоустройству. Я переключил ключи на numkeys, что является только моим собственным предпочтением – у вас может быть свой выбор.

     *Numpad0:: Run, mmsys.cpl WinWait,Sound ControlSend,SysListView321,{Down 2} ControlClick,&Set Default ControlSend,SysTabControl321,{Right 1} ControlSend,SysListView321,{Down 2} ControlClick,&Set Default ControlClick,OK return *NumpadDot:: Run, mmsys.cpl WinWait,Sound ControlSend,SysListView321,{Down 1} ControlClick,&Set Default ControlSend,SysTabControl321,{Right 1} ControlSend,SysListView321,{Down 1} ControlClick,&Set Default ControlClick,OK return 

    Я использую этот простой скрипт authotkey с утилитой nircmd. Единственная проблема – я не могу понять, как переключаться между более чем двумя аудиоустройствами всего за 1 ключ.

     F1:: if (toggle1 := !toggle1) { run, c:\windows\system32\displayswitch.exe /internal } else { run, c:\windows\system32\displayswitch.exe /external } F2:: if (toggle2 := !toggle2) { run, nircmd.exe setdefaultsounddevice "tv" } else { run, nircmd.exe setdefaultsounddevice "headphones" } 

    Я хочу получить ответ о Volume2. Эта программа имеет три места, где вы можете изменить звуковое устройство по умолчанию:

    1. Клавиатурный

      Volume2 Установить горячие клавиши устройства по умолчанию

    2. Всплывающее меню с иконкой лотка

      Volume2 Установить устройство по умолчанию TrayMenu

    3. Значок лотка мыши (слева, дважды влево, в середине)

    Interesting Posts

    Как показать файл в браузере вместо загрузки?

    Поиск аргумента Аргумент аргумента командной строки для .NET

    Android-студия logcat ничего не показывает

    Что такое VGA, и в чем разница между ним и видеокартой?

    Почему InputStream # read () возвращает int, а не байт?

    Как правильно импортировать самоподписанный сертификат в хранилище ключей Java, доступное для всех приложений Java по умолчанию?

    Плюсы и минусы пакетов частных classов в Java?

    индекс возврата из вектора значения, ближайшего к данному элементу

    Могу ли я дважды загружать Linux и Windows 7, но использовать загрузчик Windows вместо GRUB?

    PrimeFaces CSS look’n’feel отсутствует и JS «Ошибка ссылки на неволь: PrimeFaces не определен»

    Правило Microsoft Outlook 2010 для сопоставления с источником HTML?

    Я получаю java.lang.classnotfoundexception: com.mysql.jdbc.Driver

    Как я могу эффективно заменить значок для документов / файлов определенного типа?

    Как урезать миллисекунды с .NET DateTime

    Как вы отображаете fragmentы кода в формате сохранения MS Word и подсветки синтаксиса?

    Давайте будем гением компьютера.