5

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

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

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

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

РЕДАКТИРОВАТЬ: Использование AHK, чтобы попытаться заставить эту задачу работать, как мы надеялись, к сожалению, не сработает. Я включил снимок экрана с моим аудио-набором, а также снимок экрана с моим сценарием, как сейчас. Настройка звука скрипт

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

8 ответов8

6

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

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

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

4

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

  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. Запустите скрипт. Вы можете настроить запуск скрипта при желании.


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

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

1

Скрипт Auto Hotkey в качестве переключателя с помощью клавиши Scroll-Lock.

вынимать предметы, отключая их (например, hdmi на вашем ЖК-дисплее и т. д.)

Я предпочитаю это, поскольку мне нужно только изменить выход звука, если он установлен на неправильный выбор. Нажатие 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
0

Следующий скрипт позволяет создать ярлык на рабочем столе, который переключается между двумя устройствами. Сценарию может потребоваться изменить правильные имена устройств и использовать 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
0

Это старый вопрос, но я потратил некоторое время на то, чтобы получить то, что хотел. Я изменил ответ Боба, чтобы также изменить активный микрофон; Это полезно для меня, так как у меня есть беспроводные 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
0

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

nircmd setdefaultsounddevice "Speaker 1"

0

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

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"
    }
0

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

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

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

  2. Всплывающее меню со значком в трее

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

  3. Иконка в трее, щелчок мышью (слева, дважды слева, посередине)

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .