【Win下实现一键快速切换音频输出设备】

目录

装完新电脑后遇到一个烦恼,我在看视频时喜欢用音响外放,但打游戏时又需要用耳机听声辨位,每次切换都得用鼠标点右下角的小喇叭,对于我这样的懒狗来说,这个过程真的很麻烦,就想自己搞一个脚本,只需要按下一个按键就能快速在两个设备间切换,就像静音键那样的效果。

本文的实现不需要复杂的操作,需要用到的工具仅有 Nircmd 和一个可以自定义宏的键盘(本文使用RAZER黑寡妇蜘蛛V3竞技版),Nircmd是一个非常强大的命令行实用工具,允许您在不显示任何用户界面的情况下执行一些有用的任务。通过使用简单命令即可重新启动Windows或关闭计算机、创建文件快捷方式、更改创建/修改日期、关闭你的显示器等等…在您按照本文复现后,可以用类似的方式DIY各种各样的快捷功能,拓展资料会放在文末。

具体实现方法如下:

1. 下载Nircmd

Download NirCmd 64-bit

该链接为官方链接,打开Nircmd官网,一直拉到底部,即可看到此链接)

NirCmd官网

一直划到底部

NirCmd官网

2. 安装Nircmd

将下载好的压缩包解压后打开,可以看到如下内容

NirCmd安装包

双击nircmd.exe,弹出该弹窗

弹窗

点击Copy To Windows Directory按钮(这一步是为了将nircmd加入Windows系统路径,使用时就不再需要每次都输入nircmd的路径
注意! 如果这一步报错,请用管理员身份运行,或者手动复制 nircmd.exeC:\Windows 下即可。

如果在 C:\Windows 路径下可以找到 nircmd.exe 则代表安装成功,如图所示:

安装成功

也可以简单测试一下nircmd:Win+R运行cmd,输入 nircmd infobox "Hello World !" "message" ,弹出下框即为正确安装:

在这里插入图片描述

此过程如有问题,可参考文末第二个视频

3. 重命名音频输出设备的名称

在电脑 设置 -> 系统 -> 声音 -> 更多声音设置 中将自己想要控制的音频输出设备重命名为“耳机”和“音响”(只是为了方便识别),并禁用了其它没用的输出设备:

重命名

4. 编写批处理文件

【23.11.9更新】今天看到评论突然意识到上面的注释如果直接复制到bat文件中可能会出问题导致无法使用,所以特意留一份删除注释版,直接复制下面无注释版本的,应该可行(11.30更新:不,并不可行)。
【23.11.30更新】今天看到另一条评论,发现我的删除注释版不能直接复制,可能是一些隐晦的格式问题,解决方法是直接复制原代码,然后自己删除注释即可。
初写博客问题很多,感谢指正!

在桌面新建一个记事本,并写入以下内容:

// 采用一个很简单的逻辑,如果能优化请告诉我,我也想学习学习
@echo off //关闭回显
chcp 65001 > nul  //UTF-8编码
setlocal enabledelayedexpansion //设置局部变量
set tempfile=%TEMP%\tempfile.txt //导入一个临时文件用来存储当前设备标记(如果没有则会在%TEMP%路径下创建一个临时文件)
if exist "%tempfile%" (
    for /F %%i in (%tempfile%) do (set currentdevice=%%i)//读取文件内容
) else (  //将默认设备初始化为耳机,或者改成你自己取的名字
    echo 耳机 > "%tempfile%"
    set currentdevice=耳机
)
if "!currentdevice!"=="耳机" (
    echo 音响 > "%tempfile%"
    C:\Windows\nircmd.exe nircmd.exe setdefaultsounddevice "音响"
) else (
    echo 耳机 > "%tempfile%"
    C:\Windows\nircmd.exe nircmd.exe setdefaultsounddevice "耳机"
)
endlocal
exit // 执行完后自动关闭窗口

保存文本,关闭记事本,重命名 .txt 文件后缀为 .bat ,使其成为一个批处理可执行文件

@echo off
chcp 65001 > nul
setlocal enabledelayedexpansion
set tempfile=%TEMP%\tempfile.txt
if exist “%tempfile%” (
for /F %%i in (%tempfile%) do (set currentdevice=%%i)
) else (
echo 耳机 > “%tempfile%”
set currentdevice=耳机
)
if “!currentdevice!”==“耳机” (
echo 音响 > “%tempfile%”
C:\Windows\nircmd.exe nircmd.exe setdefaultsounddevice “音响”
) else (
echo 耳机 > “%tempfile%”
C:\Windows\nircmd.exe nircmd.exe setdefaultsounddevice “耳机”
)
endlocal
exit

代码

此处可以双击试运行一下,看看设备是否更改

5. 键盘宏配置

本文使用了雷蛇自带的软件“雷云”,在“”一栏新建一个宏文件,然后点击插入 -> 运行命令

宏
在运行命令框中输入你刚才编写的bat文件路径即可,然后将该宏绑定一个空闲按键(如F4)绑定

这样就搞定了! (按两下F4试试效果吧~)

测试

相关参考

  1. 【爱折腾】如何使用宏按键一键切换PC音频输出设备
  2. 【鼓捣东西】Nircmd?没听说过,但确实厉害
  3. 【Nircmd官网】
  4. 【Nircmd使用文档中文翻译帖子】
  • 29
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 21
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 21
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Kasout

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值