POPPUR爱换

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

作者: gzXW    时间: 2007-12-13 23:52
标题: 多声卡切换程序 For Vista
看来有这个需求,就动手做一个。- Q7 a) J4 ~, Y, Q/ a
1 w5 ~& ?  g3 j8 i3 F5 S
微软没有公开Vista下设置默认设备的API,只有通过控制面板来实现,会弹出一个窗口,十分不爽。4 K- W+ r# A  n9 g
. `4 H2 c) h" X" p. e* K4 D- D
哪位DX感兴趣的帮忙测试一下能不能切换声卡,如果可以正常工作,我就继续完成它。9 Q; v  L" A* [$ v4 c

' g4 g9 K$ Q0 _6 x[attach]813585[/attach]2 }) F' `$ I2 W% {6 ?8 q7 y) _
0 v4 W7 j" Z/ M9 H4 {5 w
; D, G+ H* [; v7 N; I. ]; |, d
12/14 修改了控件识别的方法,这个版本应该可以通用了。:unsure:
$ v; o/ K4 `8 c* y15:33  再改了一下参数
; K( [: l& d7 o* f" z" S8 M2 j9 T3 X- c2 V0 E' X0 _, L+ ]
21:49    为了方便弄清楚程序无法切换设备的原因,加入了一个生成设备列表报告的功能——点击主窗口工具条的?按钮,生成报告后请贴到论坛上。谢谢。0 }% y, y. L" c& x9 W9 C1 Q

" y- g3 V2 l( a) @2 y! g! w[ 本帖最后由 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 发表
5 ?! r  Q3 C5 d好!偶第一时间报告VISTA下试用的情况.% H6 }$ P8 h6 D5 w. d' }. y8 D
: }7 g4 ~- {+ a* ?
软件能正常打开,但里面的"设为默认"功能无效,按下后能弹出控制面板的音频设备窗口,然后又关掉,但并未能切换默认设备.同样"创建快捷方式"也是未能实现切换默认设备,但能成功于 ...
! @- f' \5 t2 X8 R$ E1 N( q; u
1 p* o3 n+ P% ^) i
现在作了改进,你再试试。:)
作者: 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 发表 ! o$ Q+ O/ }, T& `% s; k4 s
刚才试了下,还是不行哦:crying: 9 N( |  H/ |/ o6 u* _% n& V
& F9 N& X  d' ^+ F
在我的声卡中,如果是在Audigy的输出端口中切换就可以,比如从Audigy的模拟输出(扬声器)切换到Audigy的SPDIF输出就没问题。但如果是从Audigy切换到LYNX TWO或在LYNX TWO的几个 ...
: g$ O' Q+ |4 S% c: `
2 W$ e9 y' M2 `0 U* V7 }( {
切换不成功时,你把状态栏的提示记下, 贴上来, 我看是哪一步出错: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 发表 5 i* I$ `' |) L9 F2 S0 ~
刚才试了下,还是不行哦:( 8 l' m: l* c4 }0 N. n
但这次从LYNX TWO切换到Audigy已经可以了,但从Audigy切换到LYNX TWO或LYNX TWO的几个输出端口中切换还是不行.
+ T# O3 q3 W, E* M0 F7 t9 Z我附上了切换不成功时软件的截图:

$ T9 T. B) l% L
( w) q5 D# k5 }' S  W! `% R, E; y; m" {9 s7 X: o3 t# `# d+ }4 L8 `
你的问题有些奇怪,音频面板里显示的声卡名称前多了一个2-,而程序里读取的设备名称只是LynxTWO-B。:unsure:
& s4 b1 R% G& ^* H1 h  _# E& E8 X# Y9 f1 a# Z: }% n
你用新的程序生成一个设备列表,贴上来看看。
作者: terryddb    时间: 2007-12-14 22:22
提示: 作者被禁止或删除 内容自动屏蔽
作者: gzXW    时间: 2007-12-14 22:23
带头贴一份自己的:p
1 D) n2 f: f% X* W
  e6 e9 h7 e1 c5 Y, ~$ @; ?+ a) o' b12/14/2007 10:22:21 PM
# M  O$ S3 o4 j+ EMicrosoft Windows NT 6.0.6001 Service Pack 1, v.275
) ?; {4 K6 O; B* GEnglish (United States)" j0 M' [* u  I5 m% b0 y- W3 ~
1
7 `: F  r$ p, P; F- Y7 m5 _( _Memory Used: 18 MB8 e" q( t% X, ^1 P# \

  `! t7 ^2 g& n程序用API读取的设备列表:6 {* ]* S9 T( ]- Z2 e5 J# H! w  A

3 s* ?3 F0 A+ `5 v播放设备:
1 c+ C3 Q# `1 s9 f1 R. P0:        Realtek Digital Output        Realtek AC'97 Audio: f  C0 a5 u+ H& C- J& ~6 F
1:        Speakers        Creative SB Live! Value
$ x& w! N, n. c6 q4 h$ R2:        Speakers        Realtek AC'97 Audio7 O/ Z8 p4 P2 A

& l+ @1 p, _) L
5 L) u# ]1 c/ v7 x9 }录制设备:
: v. F' x6 g4 `9 T0:        Microphone        Realtek AC'97 Audio
7 b. f0 L$ J9 Z1:        Line-In        Creative SB Live! Value: K& a& s* b& y) S9 L. K8 B
2:        Phone Line        Realtek AC'97 Audio4 W0 o3 G. s5 o* v5 L: Q
3:        TAD-In        Creative SB Live! Value
; m- Z; G! J4 E4 E& r$ M4:        Line In        Realtek AC'97 Audio/ S& a. @7 F# b4 t; H+ S4 s: |2 z
5:        SPDIF        Realtek AC'97 Audio
7 r8 e& R/ E( _( x0 ]( Y! _6:        TV Tuner Audio        Realtek AC'97 Audio8 ^2 N4 S# w+ w% W8 @5 d9 f
7:        CD Digital        Creative SB Live! Value6 A  d( s/ p) q$ O, j( f: b
8:        Microphone        Creative SB Live! Value3 z$ T6 }; f  z* ?
9:        Line-In 2/Mic 2        Creative SB Live! Value2 W7 ^$ T6 ?1 [6 v" G
10:        S/PDIF-In        Creative SB Live! Value6 b4 h# s, k- m& G( k9 W
11:        "What U Hear"        Creative SB Live! Value
$ _- q* O' b, M' S7 ^2 @( A/ k; T8 Z: n1 Q2 c$ l
% l# d9 c; A! s, i7 H
. F' x( g5 j# V1 C9 Q3 f- d* B
从控制面板读取的设备列表:
+ _# r5 i/ c+ A: K5 f5 u: z- o! A3 i0 q' ^6 `! C( D7 Y
! v$ w. P. [9 T) o( h
播放设备:
# Q) s3 w& y! I' u! O0:        Speakers        Creative SB Live! Value
& O& }; Z, n- i5 l: Y2 E# E1:        Speakers        Realtek AC'97 Audio
% \4 u# B3 X% E" n' }2:        Realtek Digital Output        Realtek AC'97 Audio
. P# j4 s1 v/ k9 B( S) b$ y% h) h* S1 p, A4 W3 k

( y9 }6 [8 y9 p, b2 ~录制设备:! Y3 G9 c: D4 N4 m6 j
0:        Microphone        Creative SB Live! Value
& ?, W5 s7 w3 s5 ]0 u. m8 N1:        Line-In        Creative SB Live! Value
9 r4 |. m5 I8 F3 s2:        Line-In 2/Mic 2        Creative SB Live! Value
5 N% R- `4 ?- n/ @) p- t3:        CD Digital        Creative SB Live! Value9 N; \7 ?' T. W7 p* R/ M! P5 J
4:        S/PDIF-In        Creative SB Live! Value
) o  |/ j4 s9 E5:        "What U Hear"        Creative SB Live! Value5 Z  Y6 P  d. Q1 N$ U
6:        TAD-In        Creative SB Live! Value
5 b3 B1 F3 s. E9 a7:        Microphone        Realtek AC'97 Audio
% z- t# h! k7 Z8 u! D3 w8:        TV Tuner Audio        Realtek AC'97 Audio+ l  X+ X& j. h! v
9:        Line In        Realtek AC'97 Audio% K% i9 D% _* q: S) q: ?
10:        SPDIF        Realtek AC'97 Audio# c9 R0 \5 V9 s- v( ?5 ^* s# g
11:        Phone Line        Realtek AC'97 Audio
作者: gzXW    时间: 2007-12-14 22:33
标题: 回复 16# 的帖子
就是前面多了一个"2-"造成的,  
5 r# P2 v2 c8 B3 L. O' Y1 l针对这种情况, 新版的程序用了模糊比较, 你看能不能切换?:unsure:
作者: terryddb    时间: 2007-12-14 22:50
提示: 作者被禁止或删除 内容自动屏蔽
作者: gzXW    时间: 2007-12-14 23:09
:lol: 终于可以用了2 n: u* x$ u$ q5 |% @( v
( N5 ]+ s% M% a, d; z( \
我想, 如果插上两块同样的声卡, 是不是就分不清了: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 发表 ) o5 z" K. W1 I1 u4 h9 x

: e5 B! h5 H' P. A$ x谁这么BT,有两块L2:funk:
8 o2 F! u* i$ x$ ^2 l% S

7 D4 V8 I$ W* y1 u" ~
% A' }$ [. G+ N9 b" a$ M  r2- Lynx-TWO-B# P) ?4 L: T; @9 c
9 H; R1 r2 v  N( I1 U
你说呢,我是以为你个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:30
4 y2 m7 E3 B6 @* K( {% H5 mMicrosoft Windows NT 6.0.6000.0" J5 P/ ~4 |6 |, |' q; L
Chinese (People's Republic of China)
2 h+ S- E, p: I2
+ @6 l- R  a! r# a( }" {0 sMemory Used: 20 MB
. i- w0 Z; |, F9 L$ H1 V+ C; M( P2 o& E
程序用API读取的设备列表:5 u1 K6 C% E- O& e9 n8 H; |

, w# t, m5 ~% C  j1 k  B7 Z播放设备:6 ]5 N2 \1 x8 F3 T
0:        耳机        High Definition Audio 设备
" r2 \" j  S) @( [# l. ?1:        数字输出设备(SPDIF)        High Definition Audio 设备" N+ M! `- I' H  X7 B
2:        扬声器        TOGO BlackGold(tm) II 5.1 Value Series WDM Interface& W1 C% K% s6 ?8 N+ G; O6 }3 s2 ]
3:        扬声器        High Definition Audio 设备
: ?) b4 z& Q$ a2 A1 }
) h9 h  ~, Q" j7 J, e' B
5 \" Q, y2 A  j& u录制设备:+ p! J4 `5 j- v* @5 z& s; z, v
0:        线路输入        High Definition Audio 设备
: E( u& g' ]/ a: t8 T3 z" V1:        麦克风        High Definition Audio 设备8 M# s5 Y, q$ ^. w! I
2:        CD 音频        High Definition Audio 设备
) E8 F& \" `1 A5 w2 M3:        麦克风        High Definition Audio 设备
+ M' A- u( v* o/ x1 j% U4:        S/PDIF        TOGO BlackGold(tm) II 5.1 Value Series WDM Interface
! N# l( [9 y6 b/ \; e( v5:        线路输入        TOGO BlackGold(tm) II 5.1 Value Series WDM Interface* O: s! \7 [6 G$ V
6:        麦克风        TOGO BlackGold(tm) II 5.1 Value Series WDM Interface$ w% m- J+ p7 h8 {: X. A" a
% g6 A, r+ p/ V! h3 o& ?

0 f5 Q/ f# }" X* M) H9 O) g5 D% N: Y$ M2 U
从控制面板读取的设备列表:
- d' R; f+ ^- t* g) ^7 B3 L  P
: {# v6 h' Z5 D2 l& q; Z9 L" Z# T* j, ]- a9 n1 d, N8 ^6 R
播放设备:
; X5 s3 q: Y8 \) ~) M0:        扬声器        High Definition Audio 设备$ ]/ n& n: z( L. J" ?
1:        耳机        High Definition Audio 设备: a7 K! L% R, G5 {
2:        数字输出设备(SPDIF)        High Definition Audio 设备
  l$ S* N7 ^" W- [" ?3:        扬声器        TOGO BlackGold(tm) II 5.1 Value Series WDM Interf
5 p  r9 ~: T5 x
4 D5 Y; M4 M+ }0 ~* n  u) p. ^
9 r( J+ x! z. k2 X/ T5 Z: X录制设备:! w' ]' [0 U" O
0:        麦克风        High Definition Audio 设备
9 N3 C! c& }) \' B1 P1:        麦克风        High Definition Audio 设备5 ?! M3 Z" |, J4 s0 ~
2:        线路输入        High Definition Audio 设备: N5 N0 d! U6 x
3:        CD 音频        High Definition Audio 设备
( L) t) b8 l/ x/ Q0 U) ^8 M  S1 O4:        麦克风        TOGO BlackGold(tm) II 5.1 Value Series WDM Interf
: Q# ?6 N& l$ I& {" J. N5:        线路输入        TOGO BlackGold(tm) II 5.1 Value Series WDM Interf
9 Y, F, \: I! }% {* L6:        CD 唱机        TOGO BlackGold(tm) II 5.1 Value Series WDM Interf
2 u1 @' _  e" l# n. G/ |1 d# z7:        S/PDIF        TOGO BlackGold(tm) II 5.1 Value Series WDM Interf; L  w$ X: T9 N& `" m( l% h- Y
8:        立体声混音        TOGO BlackGold(tm) II 5.1 Value Series WDM Interf
$ u2 Q. F( x; @  \# f0 f9:        视频        TOGO BlackGold(tm) II 5.1 Value Series WDM Interf4 r- m4 H7 D6 U1 I; Z9 T
10:        辅助        TOGO BlackGold(tm) II 5.1 Value Series WDM Interf
作者: gzXW    时间: 2007-12-20 11:18
原帖由 lcat12f 于 2007-12-19 18:36 发表
& i; E! E+ }( k; e只有一块卡能生成快捷方式的说
$ |+ @, K, n, {! E

) y$ ^! d1 t: x" {; N% j+ h:wacko: 看来模糊查找出问题了0 G7 B, [3 O9 c* }/ v; x" e' f& s
是不是只能切换“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 发表 - p0 |6 @% c* {1 N# ]
请问楼主,实现设置默认声卡功能的API是什么?如能告知,感激不尽。

$ b6 H( i. ?5 B2 P1 Y" b7 J$ k4 J1 i& v# M( `
顶楼已经说明了“微软没有公开Vista下设置默认设备的API,只有通过控制面板来实现”- t: T- W; i/ G/ ~8 K! {
是通过SendMessage发送消息给控制面板模拟更改实现的
作者: fengzhu    时间: 2007-12-31 22:02
:w00t): 没VISTA的飘过,不过这贴要顶滴
作者: rui0101    时间: 2008-1-2 22:45
不好意思,我没说明白,我想知道win2k下使用哪个API来实现?多谢楼主了。




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