引用:
原帖由 gzXW 于 2007-10-28 11:09 发表
& s0 B( P% m" p* l+ H7 B7 ~- A
想到一个50%符合terryddb要求的方法: Q. @' V: V9 Y& U3 p7 o4 F
条件是两块声卡的名称首字母是不同的, 比如设备面板里显示声卡1为“SB Live” ,声卡2为“Realtek HD”。
' F- v& V3 F% X$ I, h5 nOK,此时在面板模拟按“S”时是选择声卡1,按“R”时是选择声卡2。 ...
3 M' @* y# y+ }. r+ f& tOrz,真系好掂

,非常感谢gzXW兄弟!现在可以轻松转换指定的声卡了。)
, U2 r+ d3 U+ p9 Q" O; }
替gzXW再说明一下,各位有两张或更多声卡兄弟,只要你的声卡在声音和音频属性里的设备名首字母不是一样的就简单了(就是声卡的首名字是一样也是可以的请看下面)
5 m/ }+ Z% c+ Q% X8 m
把gzXW提供的VBS文件用记事本打开,修改为你自己的声卡设备名和首写字母,例如我现在想转换为LYNXTWO-B,vbs就是改成下面那样:
1 {7 D) z. c& _" f
" x3 R6 e1 a9 t1 e( c'切换默认声卡
( B! B2 j# q* J, N \
'Coded by gzXW
?# @0 U' L/ t- W/ A8 _Option Explicit
2 [2 ]# }* v h" h6 SDim WshShell
, K# s4 F) d4 y4 b1 H
Set WshShell = CreateObject("WScript.Shell" )
* C! H* Y, r6 \& |3 ]0 q- @
'运行音频面板
}/ x! z. I' a) e0 @
WshShell.Run("rundll32.exe shell32.dll,Control_RunDLL mmsys.cpl,,2" )
" k, H. ?, Y* m0 { a0 CWScript.Sleep(200)
% `" q% S N* d
'模拟按键,选择声卡“LynxTWO-B”,首字母是L
4 A5 C4 n5 n0 Z; @: p5 fWshShell.SendKeys("{L}" )
0 `1 \+ ^- }4 r5 w+ t
WshShell.SendKeys("{ENTER}" )
- z# }/ Y9 d" j5 T6 [1 I* O, e: V' W1 o5 e
另外gzXW提供的Change_Default_Sound_Device.vbs是可以通过在选择音频设备时按上下键的次数来达到切换到指定设备的目的的。
4 |( E6 V$ l8 s+ A6 Y" I) B这样就算是声卡的首名字是一样的也是可以指定切换了。
( x5 T# Y2 Z/ W. z& A
好比LYNX TWO,音频设备里其实是8个设备,因为它有8条立体声通道,声音和音频属性里显示为LynxTWO-B Device 1,LynxTWO-B Device 2等,我现在想指定使用第1通道或第8通道都行。具体方法大家自己打开声音和音频属性想一想试一试吧,肯定可以的。
; C8 \/ o, o8 \' Z j
. t0 q, H, A) m) w, o' s* Z
呵呵真的再次感谢gzXW兄弟
D5 B ~3 L5 z+ \2 u/ l" X: [( R; U, J6 P8 F1 c5 S, l9 i& l
[
本帖最后由 terryddb 于 2007-10-28 17:29 编辑 ]