2009年1月11日星期日

电脑:切换声卡(默认音频设备)的脚本

电脑  AMD 790G的主板(集成Realtek声卡),装了驱动后,就有了三个播放设备(VISTA系统)。分别是1.Realtek HDMI Output 2.Realtek High definition Audio 3.Realtek Digital Output。奇怪的是,VISTA系统里,虽然这三个设备实际上是同一块声卡,但却不能同时输出相同的音频,比如软件使用Realtek High definition Audio的话,也就是主板上的音频插孔的模拟输出,Realtek Digital Output就没有同步的数字信号输出。而在WINDOWS XP里却是模拟和数字输出同步工作。因为同时用数字输出接AV功放和使用主板本身的模拟输出接耳机(夜深人静时),而Realtek High definition Audio和Realtek Digital Output不能同步工作,搞得就要经常的切换系统默认音频播放设备。一般的办法就是在音频控制面板(任务栏的小喇叭可快迅进入)里切换,不过是非常麻 烦。所以一直就想找一个一键切换系统默认音频设备的东东。
  搜索了网上,有一个小软件非常不错,软件叫"默认声音播放设备更换程序(ChangeSoundDevice或WhichSoundCard)",详 细介绍点这里。不过这个东 东只能在WINDOWS 2K和WINDOWS XP里使用,不能兼容VISTA。
  看来只能自力更生了。想到了编写一段脚本,模拟切换播放设备的操作。脚本如下:
'切换默认音频设备
'Coded by YeBanLuanTan@Gmail.com
Option Explicit

Dim WshShell
Set WshShell = CreateObject("WScript.Shell" )

'打开音频面板
WshShell.Run("rundll32.exe shell32.dll,Control_RunDLL mmsys.cpl,,0" )
WScript.Sleep(200)

'模拟按键,视实际情况调整按Down键次数。因是模拟按键,运行过程不要操作键盘和鼠标。
WshShell.SendKeys("{DOWN}" )
WshShell.SendKeys("{DOWN}" )
'WshShell.SendKeys("{DOWN}" )
WshShell.SendKeys("%+S" )
WshShell.SendKeys("{ENTER}" )

  上面的是切换到Realtek High definition Audio(第二个播放设备),如果要切换到Realtek Digital Output(也就是我的第三个播放设备),脚本如下:
'切换默认音频设备
'Coded by YeBanLuanTan@Gmail.com
Option Explicit

Dim WshShell
Set WshShell = CreateObject("WScript.Shell" )

'打开音频面板
WshShell.Run("rundll32.exe shell32.dll,Control_RunDLL mmsys.cpl,,0" )
WScript.Sleep(200)

'模拟按键,视实际情况调整按Down键次数。因是模拟按键,运行过程不要操作键盘和鼠标。
WshShell.SendKeys("{DOWN}" )
WshShell.SendKeys("{DOWN}" )
WshShell.SendKeys("{DOWN}" )
WshShell.SendKeys("%+S" )
WshShell.SendKeys("{ENTER}" )

  两段不同的地方只是第一段注销了倒数第三行。至于要几个"WshShell.SendKeys("{DOWN}" )",那就要看实际情况,命令都很简单,不难看出其中的意义。两段脚本分别保存为"模拟输出.vbs"和"数字输出.vbs",双击即可轻松切换默认的音 频播放设备。不再需要点N次鼠标了。

没有评论: