POPPUR爱换

标题: 多声卡切换程序 For Vista [打印本页]

作者: gzXW    时间: 2007-12-13 23:52
标题: 多声卡切换程序 For Vista
看来有这个需求,就动手做一个。$ E! x3 U: a- W0 q7 K

9 H: F% t# v! j5 T$ ?; g微软没有公开Vista下设置默认设备的API,只有通过控制面板来实现,会弹出一个窗口,十分不爽。* y+ G* S; E/ U+ t+ A

; I+ g) h0 }+ K. X1 ^" }哪位DX感兴趣的帮忙测试一下能不能切换声卡,如果可以正常工作,我就继续完成它。' N1 W. }0 v" m1 N; [4 O1 l
. b2 s/ v/ p% t. C7 {& r& K: {
[attach]813585[/attach]
' B; B: V; t' Q  i3 Y, K2 r; P% u0 k
6 @' u9 P0 o3 b0 R5 Q4 l, L; }! R
12/14 修改了控件识别的方法,这个版本应该可以通用了。:unsure:
1 @7 g" ]  Y/ D  G4 j7 \3 m15:33  再改了一下参数0 @% W6 S# _+ W* j0 D0 ^
7 f* n0 J9 [( k
21:49    为了方便弄清楚程序无法切换设备的原因,加入了一个生成设备列表报告的功能——点击主窗口工具条的?按钮,生成报告后请贴到论坛上。谢谢。0 H7 v" d8 m( Q9 H: |& c7 p

( Y8 w1 T: R+ u: A0 \[ 本帖最后由 gzXW 于 2007-12-14 22:14 编辑 ]
作者: meonlove    时间: 2007-12-13 23:59
提示: 作者被禁止或删除 内容自动屏蔽
作者: chairmanai    时间: 2007-12-14 00:22
没有VISTA,但是帮LZ顶
作者: terryddb    时间: 2007-12-14 01:00
提示: 作者被禁止或删除 内容自动屏蔽
作者: flz821028    时间: 2007-12-14 10:20
太阳你们,地板都没留:crying:
作者: gzXW    时间: 2007-12-14 12:37
原帖由 terryddb 于 2007-12-14 01:00 发表
  k) c. e% e+ c' a5 Q9 `好!偶第一时间报告VISTA下试用的情况.
3 z* x, h5 Z6 O4 ]; I6 V/ X
; k( ?4 i$ a# Y% k% ~2 h& B+ z+ k. C软件能正常打开,但里面的"设为默认"功能无效,按下后能弹出控制面板的音频设备窗口,然后又关掉,但并未能切换默认设备.同样"创建快捷方式"也是未能实现切换默认设备,但能成功于 ...

2 |# ~/ r( t4 x9 H4 O# N7 O  j  |! E. d; Q4 k- V- U0 a" D3 D
现在作了改进,你再试试。:)
作者: terryddb    时间: 2007-12-14 14:23
提示: 作者被禁止或删除 内容自动屏蔽
作者: artu    时间: 2007-12-14 14:26
xp下的有没有?
作者: terryddb    时间: 2007-12-14 14:41
提示: 作者被禁止或删除 内容自动屏蔽
作者: flz821028    时间: 2007-12-14 14:41
标题: 回复 8# 的帖子
在音区的精华帖里找找吧:lol:
作者: gzXW    时间: 2007-12-14 15:25
原帖由 terryddb 于 2007-12-14 14:23 发表
% ?( }# i. D2 ~" U4 C% a  J刚才试了下,还是不行哦:crying: ) Q2 |. O+ I$ }+ W6 Y# v
, X+ w& X' [5 i3 h+ N
在我的声卡中,如果是在Audigy的输出端口中切换就可以,比如从Audigy的模拟输出(扬声器)切换到Audigy的SPDIF输出就没问题。但如果是从Audigy切换到LYNX TWO或在LYNX TWO的几个 ...
. q7 p1 R, @# k5 Y3 b$ {$ ]

" A% V, o! Z1 G1 s5 Y: c! v# d切换不成功时,你把状态栏的提示记下, 贴上来, 我看是哪一步出错:blink:
作者: gzXW    时间: 2007-12-14 15:36
又改了一点参数,terryddb再试试
作者: terryddb    时间: 2007-12-14 16:06
提示: 作者被禁止或删除 内容自动屏蔽
作者: terryddb    时间: 2007-12-14 20:09
提示: 作者被禁止或删除 内容自动屏蔽
作者: gzXW    时间: 2007-12-14 21:55
原帖由 terryddb 于 2007-12-14 20:09 发表 1 g8 j) M; }: L" O7 J: `
刚才试了下,还是不行哦:(
) _( f& \; _5 F# y+ q. V9 A0 |' w但这次从LYNX TWO切换到Audigy已经可以了,但从Audigy切换到LYNX TWO或LYNX TWO的几个输出端口中切换还是不行.% w# C+ ]) T7 n& N
我附上了切换不成功时软件的截图:

/ x/ L6 E" P( a( a
: f+ m1 k  P8 M4 k% z& ^3 [7 V' _- b, h$ ~% P+ s
你的问题有些奇怪,音频面板里显示的声卡名称前多了一个2-,而程序里读取的设备名称只是LynxTWO-B。:unsure: , ~$ P# x& ~& r" J1 Q, L
$ p( n3 a3 K  K: \8 d% _
你用新的程序生成一个设备列表,贴上来看看。
作者: terryddb    时间: 2007-12-14 22:22
提示: 作者被禁止或删除 内容自动屏蔽
作者: gzXW    时间: 2007-12-14 22:23
带头贴一份自己的:p
7 Q5 H5 `# U# q: c
  V9 ~% p! I* `) S. u12/14/2007 10:22:21 PM
) W* w$ V( u4 jMicrosoft Windows NT 6.0.6001 Service Pack 1, v.275& v% `; G: b* o9 l: q. `& l
English (United States): }) _& z" _5 E0 Q
1$ N1 f, y3 m& a
Memory Used: 18 MB
) |: ]. F! M5 n- M: i& L# G  q, B, x; k
程序用API读取的设备列表:  a0 Y9 `$ {: u4 I8 E
) k+ m3 _/ U1 Q
播放设备:
4 g* f# I/ j" A8 ]: Y, g' ~& v0:        Realtek Digital Output        Realtek AC'97 Audio
6 e% F2 |% u& N! v7 g4 k1:        Speakers        Creative SB Live! Value
; @5 z7 z5 F7 v* g2:        Speakers        Realtek AC'97 Audio+ b1 o2 x; p$ s/ n8 M9 V: n- _$ `

, x: Q1 n! Q! S7 G3 B! M; n" Z: G1 V! t7 T, M! t( I
录制设备:
! V3 n; b* ]! Y' d! w8 p: H6 T0:        Microphone        Realtek AC'97 Audio
+ R4 m$ B5 `' ]. X- }; ~1:        Line-In        Creative SB Live! Value; p4 V% h+ I  u; Q! Q/ ^
2:        Phone Line        Realtek AC'97 Audio  a% G- F2 l" C* H5 D5 W2 l
3:        TAD-In        Creative SB Live! Value4 b& {# @3 [, r) I* s6 j) @  m
4:        Line In        Realtek AC'97 Audio& J9 [- m# `3 r) s+ p1 d4 B+ I5 O2 ]
5:        SPDIF        Realtek AC'97 Audio
8 H# k; E7 C5 ?2 R6 M0 A1 }; ~6:        TV Tuner Audio        Realtek AC'97 Audio
0 Z+ r9 G" ?2 X# c( o) q9 T7:        CD Digital        Creative SB Live! Value
/ f6 n4 K: Z0 Y, e! U8:        Microphone        Creative SB Live! Value
' q( v4 d9 q: _" U7 O! a) w: o9:        Line-In 2/Mic 2        Creative SB Live! Value# q% U' o0 j# e
10:        S/PDIF-In        Creative SB Live! Value
1 e; @1 j) s. J" H9 _11:        "What U Hear"        Creative SB Live! Value0 ^. J" ?& K( j5 f6 r1 [) K$ F  t" M! G
3 J/ _( r8 @3 l5 t

  o5 b; K0 v! M4 {1 Z  s3 A
# @4 x$ f! S) n2 B从控制面板读取的设备列表:8 F! c6 [' K2 k

$ N9 M& f5 z, K. w1 y! O
/ m6 q. d4 N  v3 H) R播放设备:0 c/ M5 N) N3 d6 r' c, `; c
0:        Speakers        Creative SB Live! Value: T+ f4 }. V0 a  ]$ h4 h
1:        Speakers        Realtek AC'97 Audio+ s- C+ n+ B9 p% {* @$ C# l
2:        Realtek Digital Output        Realtek AC'97 Audio
( f( e. B8 W8 a# W2 l- @
6 [0 }* U4 x9 T# {+ J5 l9 Y, N* l" Q! X+ q/ R4 ^5 l
录制设备:
; C5 v3 w2 Z+ P2 M- Y+ o. g2 k/ b0:        Microphone        Creative SB Live! Value
2 e* g! t2 e( Z- t+ B; A# u1:        Line-In        Creative SB Live! Value; m1 X+ l4 p- K
2:        Line-In 2/Mic 2        Creative SB Live! Value$ E: C. L: b% Y$ e0 G
3:        CD Digital        Creative SB Live! Value
6 r7 |, |" Q4 N: B4:        S/PDIF-In        Creative SB Live! Value+ v: `: S' G* s: i$ r
5:        "What U Hear"        Creative SB Live! Value
7 z* a; L4 V7 C3 m6:        TAD-In        Creative SB Live! Value
" T8 G/ ^, |. H7:        Microphone        Realtek AC'97 Audio
/ I. y1 H+ ]" |3 O8 j/ }! h8:        TV Tuner Audio        Realtek AC'97 Audio
+ J, j( F' a) F1 f; Z1 n9:        Line In        Realtek AC'97 Audio
0 V+ m. p7 s: r" Q- U9 `$ F+ @10:        SPDIF        Realtek AC'97 Audio
6 ]! f5 x; ^8 r% L9 @, S, A11:        Phone Line        Realtek AC'97 Audio
作者: gzXW    时间: 2007-12-14 22:33
标题: 回复 16# 的帖子
就是前面多了一个"2-"造成的,  
1 p. V" z: L- e& \  s针对这种情况, 新版的程序用了模糊比较, 你看能不能切换?:unsure:
作者: terryddb    时间: 2007-12-14 22:50
提示: 作者被禁止或删除 内容自动屏蔽
作者: gzXW    时间: 2007-12-14 23:09
:lol: 终于可以用了
% E) L, O, V, H4 ~% s, p
% N6 o* T! D0 b0 c我想, 如果插上两块同样的声卡, 是不是就分不清了:unsure:
作者: terryddb    时间: 2007-12-14 23:13
提示: 作者被禁止或删除 内容自动屏蔽
作者: gzXW    时间: 2007-12-14 23:49
加分了,谢谢王版:loveliness:
作者: gzXW    时间: 2007-12-14 23:52
原帖由 terryddb 于 2007-12-14 23:13 发表
1 J2 p$ t0 d; W
* z4 s) v1 m- n! L  T7 G谁这么BT,有两块L2:funk:
) _% r8 l4 y# ]) o  C

7 U# w0 y/ a& h' _7 f0 {- T1 J; C& ]) G% k" u
2- Lynx-TWO-B5 G6 W8 \  `$ l1 m& B* N  x7 b* V
7 g% ^7 p, B/ I; q
你说呢,我是以为你个TB有两块:w00t):
作者: terryddb    时间: 2007-12-15 01:16
提示: 作者被禁止或删除 内容自动屏蔽
作者: 蝴蝶飞飞    时间: 2007-12-15 21:07
不错,方便多了!
作者: lcat12f    时间: 2007-12-19 18:36
只有一块卡能生成快捷方式的说
作者: lcat12f    时间: 2007-12-19 18:50
2007/12/19 18:50:308 ^- b( ?) T1 |( e# D4 L
Microsoft Windows NT 6.0.6000.0
4 Q7 h+ m( x: [; GChinese (People's Republic of China)
. W- }; |  C, ]+ P4 j3 s20 u, a! W; j5 I* K
Memory Used: 20 MB
8 q7 y# y- E7 T5 ]& g" c8 j0 z* A8 J0 K, x+ H8 Z- h
程序用API读取的设备列表:, e1 n9 [( H) K1 c

) N1 x/ P! M! a2 u- d1 J播放设备:) N1 \3 O( N3 K2 t, z% a
0:        耳机        High Definition Audio 设备# K, H5 F+ }# q2 Q5 ~& V
1:        数字输出设备(SPDIF)        High Definition Audio 设备
+ \! X& H9 i+ m! T5 k! i2:        扬声器        TOGO BlackGold(tm) II 5.1 Value Series WDM Interface( h( L5 q2 Q! ]' ?& d8 Z
3:        扬声器        High Definition Audio 设备
& J& J- k9 }  f0 q/ k5 E
9 e) H6 p  B! u: U, C: E, c" K; C7 ~5 M+ V0 ]' H0 y. A
录制设备:
# b$ p3 m( _" f0:        线路输入        High Definition Audio 设备0 N' @" c. s' m: b+ u. D. x
1:        麦克风        High Definition Audio 设备
4 x5 l$ c4 W% {' c! H3 e2:        CD 音频        High Definition Audio 设备; v2 _6 F2 y  X0 y* @% Q# R
3:        麦克风        High Definition Audio 设备
) l2 H; V' e/ y+ |, I4:        S/PDIF        TOGO BlackGold(tm) II 5.1 Value Series WDM Interface
( J8 i# t0 I$ V: D' M5:        线路输入        TOGO BlackGold(tm) II 5.1 Value Series WDM Interface4 V0 v5 t( ^7 H+ h' T, q
6:        麦克风        TOGO BlackGold(tm) II 5.1 Value Series WDM Interface
2 S: c/ z+ l! a3 t, J. N' ~9 e. |3 q' ]  @6 t3 a
! N8 I$ l$ I3 c, L( J6 V% R

& x% Q5 l! L) V! {1 P7 z从控制面板读取的设备列表:
7 S( ^9 `: |& m" {* L6 w  x8 u- E6 M# _, z) v+ c0 G

( ]. z/ o4 M4 _% U' [3 Z7 I+ u播放设备:+ E. t  a" K8 H$ ?' g1 q! X
0:        扬声器        High Definition Audio 设备
, q% j8 C+ I! I3 @" O1:        耳机        High Definition Audio 设备1 w" j  T+ t) ^- k& r
2:        数字输出设备(SPDIF)        High Definition Audio 设备
2 }5 }' u3 [$ k6 ~4 n3:        扬声器        TOGO BlackGold(tm) II 5.1 Value Series WDM Interf
8 P. N' f- ^$ f0 k% r* _" W- B) z
2 L& v7 @' B8 H* X9 W. U0 n- J% {2 d
录制设备:
% @) a  r9 J2 G1 a7 R0:        麦克风        High Definition Audio 设备; [) m- t  S- [: P! h" H
1:        麦克风        High Definition Audio 设备
0 U% a& e. R: Y' r3 x2:        线路输入        High Definition Audio 设备
+ D' l/ c( z( Y/ v& \8 d4 E3:        CD 音频        High Definition Audio 设备
# R- h5 ^# J! o, Z2 U. v4:        麦克风        TOGO BlackGold(tm) II 5.1 Value Series WDM Interf  \5 l1 P  O0 R% ~1 J4 r- A  {
5:        线路输入        TOGO BlackGold(tm) II 5.1 Value Series WDM Interf
& ?4 M; ]8 `8 F, R" U- L6:        CD 唱机        TOGO BlackGold(tm) II 5.1 Value Series WDM Interf
) }5 I  \( O1 L$ L7:        S/PDIF        TOGO BlackGold(tm) II 5.1 Value Series WDM Interf$ O6 _" J/ q$ N7 c: I
8:        立体声混音        TOGO BlackGold(tm) II 5.1 Value Series WDM Interf
7 O8 a0 ^) s/ q. y  V1 v9:        视频        TOGO BlackGold(tm) II 5.1 Value Series WDM Interf9 E/ ]$ d; p( D: X$ Y$ J
10:        辅助        TOGO BlackGold(tm) II 5.1 Value Series WDM Interf
作者: gzXW    时间: 2007-12-20 11:18
原帖由 lcat12f 于 2007-12-19 18:36 发表 3 {2 y- k/ @, w8 @8 T$ [
只有一块卡能生成快捷方式的说

2 U# z1 {) d# k" b! c: n
( ]9 f3 }- f  n6 h, c6 K:wacko: 看来模糊查找出问题了! `! R0 p: S4 V4 M; ^
是不是只能切换“2:        扬声器        TOGO BlackGold(tm) II 5.1 Value Series WDM Interface4 H8 ”这块声卡?
作者: terryddb    时间: 2007-12-20 14:20
提示: 作者被禁止或删除 内容自动屏蔽
作者: lcat12f    时间: 2007-12-23 22:41
对俄~~~
作者: rui0101    时间: 2007-12-29 23:57
请问楼主,实现设置默认声卡功能的API是什么?如能告知,感激不尽。
作者: gzXW    时间: 2007-12-31 18:54
原帖由 rui0101 于 2007-12-29 23:57 发表
% c: a6 f$ Y0 Z* R" k. [0 [, X请问楼主,实现设置默认声卡功能的API是什么?如能告知,感激不尽。
( j  q" N8 D9 i( i

8 K% v* P& i' h& G( B顶楼已经说明了“微软没有公开Vista下设置默认设备的API,只有通过控制面板来实现”( D( s& u7 U) J  n$ q
是通过SendMessage发送消息给控制面板模拟更改实现的
作者: fengzhu    时间: 2007-12-31 22:02
:w00t): 没VISTA的飘过,不过这贴要顶滴
作者: rui0101    时间: 2008-1-2 22:45
不好意思,我没说明白,我想知道win2k下使用哪个API来实现?多谢楼主了。




欢迎光临 POPPUR爱换 (https://we.poppur.com/) Powered by Discuz! X3.4