如何在 Windows Vista/7 上管理多个音频播放设备?

如何在 Windows Vista/7 上管理多个音频播放设备?

我的台式电脑上连接有扬声器(音频输入)和耳机(带自带声卡的 USB 耳机)。在 Windows 7 下,我可以右键单击音频混音器并选择播放设备并在这些设备之间切换。

有没有更简单的方法,比如键盘快捷键,可以更轻松地切换?我在共享空间工作,有时我想戴耳机以免打扰其他人,但有时扬声器也可以。我希望能够快速切换。在理想情况下,我的问题的解决方案也适用于 Vista。

答案1

解决所有困扰您的 Windows 自动化问题的解决方案:自动识别

把这个 AutoIt 放进去并编译

;-----Configuration-----
;The title of the sound config window.
Dim $ConfigWindowTitle = "Sound"
;-----End of configuration----

Dim $ItemNumber = 1
If $CmdLine[0] >= 1 Then ;If we have a parameter...
    $ItemNumber = $CmdLine[1] ;...we should press the button the specified number of times.
EndIf

Run("control mmsys.cpl") ;Run the sound control applet and hide it.

WinWaitActive($ConfigWindowTitle) ;Wait for it to be active before sending keystrokes.

Send("{TAB}{TAB}{TAB}{TAB}") ;Put the focus on the list

For $i = 1 to $ItemNumber Step 1
    Send("{DOWN}")
Next

Send("!s") ;Press Alt + S to set the selected device as the default.
WinClose($ConfigWindowTitle)

现在创建一个快捷方式,并在目标中输入已编译可执行文件的路径。对于参数,请输入列表中要切换到的声音设备的编号。(要切换到列表中的顶部项目,请输入 1,要切换到列表中的第二个项目,请输入 2,等等)。如果您想要键盘快捷键,请使用快捷方式属性窗口中的快捷键字段。

我一直在寻找可以实现您想要的功能的方法,但发现在 Vista/7 中没有可以切换音频设备的编程方法。微软认为程序员不需要这样做,所以我编写了这个脚本来自动化该过程。它不是最好的,因为它会弹出窗口来更改设备(这是必要的),但它可以创建快捷方式来更改声音的输出设备。

答案2

默认音频转换器我认为这是目前最好的解决方案。

它使用未记录的系统调用而不是模拟键盘按压,这意味着您可以在全屏应用程序中放心使用它。

答案3

@Dan Walker 不错的解决方案,但并不完美;)

此脚本使用文件的存在来实际执行切换,因此您可以使用相同的快捷方式在播放设备之间切换。这只是一个简单的编辑:

;-----Configuration-----
;The title of the sound config window.
Dim $ConfigWindowTitle = "Sound"
;-----End of configuration----

Dim $ItemNumber = 1 ; The first itme in the audio list

If FileExists ("a") Then; Use the existence of a file to know if we should toggle
    FileDelete("a")
    $ItemNumber = 3 ; The audio playback device you want to toggle to
Else
    FileOpen("a", 1)
    FileClose("a")
EndIf

Run("control mmsys.cpl") ;Run the sound control applet and hide it.

WinWaitActive($ConfigWindowTitle) ;Wait for it to be active before sending keystrokes.

Send("{TAB}{TAB}{TAB}{TAB}") ;Put the focus on the list

For $i = 1 to $ItemNumber Step 1
    Send("{DOWN}")
Next

Send("!s") ;Press Alt + S to set the selected device as the default.
WinClose($ConfigWindowTitle)

答案4

fakt 的解决方案非常有效。这里有一个 autohotkey 的小脚本,当您按“F4”时,它会选择第一个音频设备作为默认音频设备,而当您按“F3”时,它会选择第二个音频设备作为默认音频设备。此版本适用于所有 Windows 版本。使用 Win 7 64 进行测试。

F3::
Run, mmsys.cpl
WinWaitActive,Sound
ControlSend,SysListView321,{Down}
ControlSend,SysListView321,{Down}
Sleep, 50
ControlClick,Button2
ControlClick,OK
return

F4::
Run, mmsys.cpl
WinWaitActive,Sound
ControlSend,SysListView321,{Down}
Sleep, 50
ControlClick,Button2
ControlClick,OK
return

相关内容