我的台式电脑上连接有扬声器(音频输入)和耳机(带自带声卡的 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