通过执行批处理文件/ powershell脚本来设置回放设备

haa*_*nlu 22 audio powershell batch-file playback powershell-2.0

我把我的电脑(Windows 7)连接到电视上,我经常在数字音频(S/PDIF)(高清晰度音频设备)和我的耳机(2- Corsair CA-HS1 USB)之间改变音频输出设备耳机)

我想能够执行一个批量/脚本文件,为我更改这个,所以我没有"右键单击音量>播放设备>"标记输出设备",然后单击"设置默认值".

我知道这是一个奢侈品问题,但是嘿,也许我可以向某人学习一些东西?

所有帮助赞赏!

小智 23

这就是我将'Line 1'设置为播放设备的方法:

start /min "" G:\......\nircmd.exe setdefaultsounddevice "Line 1"
Run Code Online (Sandbox Code Playgroud)

NirCmd是一个小型命令行实用程序,您可以下载它,允许您执行一些有用的任务而不显示任何用户界面.

  • 完善!使用AutoHotKey,NirCmd似乎比UI自动化更强大.我不得不重命名我的一个播放设备,因为它们都被称为"扬声器" (2认同)

小智 9

我有与你自己完全相同的要求,在发现你的帖子后,我发现了以下内容:

https://web.archive.org/web/20131231034118/http://downloadsquad.switched.com/2010/06/16/windows-7-tip-how-to-change-the-default-audio-device-与-A-热/

不幸的是,它不是本机Windows功能; 它需要下载一个名为AutoHotKey的小型开源脚本工具,但它运行良好,只需要少量内存(1~2.5Mb)

原始文章中提供的脚本对我不起作用.它正在搜索启用/禁用设备并更改该值,而不是更改默认设备.我编辑它现在在2个默认设备之间切换.它的工作原理是打开声音控制面板(mmsys.cpl),然后将播放设备列表向下滚动到列表中的第二个项目(即{Down 2}部分).这是因为我的演讲者是我列表中的第二项.然后检查设备是否是默认设备.如果没有,则将其设置为默认值并关闭窗口.如果它已经是默认值,则向下滚动2次并将其设置为默认值.

因此,您需要修改{Down 2}行以适合您自己的设备列表.

 #+a::
Run, mmsys.cpl
WinWait,Sound
ControlSend,SysListView321,{Down 2}
ControlGet, selectedDevice, List, Focused, SysListView321
Loop, Parse, selectedDevice, %A_Tab%
    if a_index <> 3
        continue
    else 
    {
        if A_LoopField <> Default Device
        {
            ControlClick,&Set Default
            ControlClick,OK
            WinWaitClose
            SoundPlay, *-1
            return
        }
        else
        {
            ControlSend,SysListView321,{Down 2}
            ControlClick,&Set Default
            ControlClick,OK
            WinWaitClose
            SoundPlay, *-1
            return
    }       
}
Run Code Online (Sandbox Code Playgroud)