POPPUR爱换

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

作者: gzXW    时间: 2007-12-13 23:52
标题: 多声卡切换程序 For Vista
看来有这个需求,就动手做一个。
$ c4 U" N  T$ z+ X
0 k/ ^! B8 Y6 ]) P( d. C6 F微软没有公开Vista下设置默认设备的API,只有通过控制面板来实现,会弹出一个窗口,十分不爽。' N6 v# A5 W+ @, X9 l! t
/ F; }5 U! z. V3 R
哪位DX感兴趣的帮忙测试一下能不能切换声卡,如果可以正常工作,我就继续完成它。
0 B" r- W5 C% q: ^, ]' K5 C; s! X% j* C. s5 V
[attach]813585[/attach]4 D7 J# {, R; Z  X- Y1 |" x

0 [" d! E  v' i7 m% A1 B- P3 c9 v- d+ w1 L* r6 ~6 q
12/14 修改了控件识别的方法,这个版本应该可以通用了。:unsure:
+ v, J; `( N& s) t5 n15:33  再改了一下参数
7 I3 ?- Q) O( D: @9 t% O4 b, K- t- O8 T4 O0 z
21:49    为了方便弄清楚程序无法切换设备的原因,加入了一个生成设备列表报告的功能——点击主窗口工具条的?按钮,生成报告后请贴到论坛上。谢谢。% f# P: c$ G* V( l1 I1 D
- c& N' j# O9 ]8 P
[ 本帖最后由 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 发表 ) X1 C5 V6 [. J
好!偶第一时间报告VISTA下试用的情况.  _& T6 T& \. Z  h( b$ R. b  c4 \
. `$ ~$ D  S8 c; v1 E4 x
软件能正常打开,但里面的"设为默认"功能无效,按下后能弹出控制面板的音频设备窗口,然后又关掉,但并未能切换默认设备.同样"创建快捷方式"也是未能实现切换默认设备,但能成功于 ...
4 V! {8 o0 g* e+ f, ~

0 C. o# d: y* L$ H现在作了改进,你再试试。:)
作者: 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 发表 ! y0 q) C/ ^5 |1 i
刚才试了下,还是不行哦:crying: 7 @/ J# J' _" H% R

2 D) V' h, o/ z% {在我的声卡中,如果是在Audigy的输出端口中切换就可以,比如从Audigy的模拟输出(扬声器)切换到Audigy的SPDIF输出就没问题。但如果是从Audigy切换到LYNX TWO或在LYNX TWO的几个 ...
3 E4 |6 F$ I. e" Q% R* t' K! r
- {! N  }/ n3 l. M
切换不成功时,你把状态栏的提示记下, 贴上来, 我看是哪一步出错: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 发表
9 P* W  E; O! m; J6 G) |9 H0 n刚才试了下,还是不行哦:(
9 [0 }# x( U$ u2 `. X4 `但这次从LYNX TWO切换到Audigy已经可以了,但从Audigy切换到LYNX TWO或LYNX TWO的几个输出端口中切换还是不行.; G9 c8 Q0 H' @6 G. x% M* i
我附上了切换不成功时软件的截图:
) H. w1 Y2 Y+ f8 U. O

9 h; z. z/ C$ ?5 B, P# Q% s6 z4 ]2 |1 {' a" c  L" r2 U$ d  r% c# p) |1 V
你的问题有些奇怪,音频面板里显示的声卡名称前多了一个2-,而程序里读取的设备名称只是LynxTWO-B。:unsure: # z' B; Y" p/ ~, ]
. y4 A. F; R- r! L; L0 r/ v
你用新的程序生成一个设备列表,贴上来看看。
作者: terryddb    时间: 2007-12-14 22:22
提示: 作者被禁止或删除 内容自动屏蔽
作者: gzXW    时间: 2007-12-14 22:23
带头贴一份自己的:p ) K' P  ~4 u# g+ j
3 w" }# X3 j6 O; o9 Q! y
12/14/2007 10:22:21 PM
% P" G0 T7 \- Q  {+ U9 VMicrosoft Windows NT 6.0.6001 Service Pack 1, v.275
$ R7 w0 `5 `$ n8 j* a' yEnglish (United States), s& }$ B6 u' s; X+ c
1) X0 I( h5 H8 \# h& U8 s+ J
Memory Used: 18 MB
6 U3 ~# N0 O# M9 q
* J  r  m0 W# G0 e+ \9 N程序用API读取的设备列表:
7 z# r1 q" P, B
0 `# G, a$ T3 r* i播放设备:. }1 }$ f; }- D( }2 Y" Q
0:        Realtek Digital Output        Realtek AC'97 Audio& ?+ [8 a  e) g6 Q$ P7 U3 G
1:        Speakers        Creative SB Live! Value3 r7 Z- w1 j" N  L1 L4 Q
2:        Speakers        Realtek AC'97 Audio4 j7 ?) W' s; {$ E/ o

* w) w, K) E+ M0 i' S5 C/ C- F
录制设备:
- ^/ |9 F/ _7 d% j0:        Microphone        Realtek AC'97 Audio
) L) K( g/ ^/ v: i* Z) y1:        Line-In        Creative SB Live! Value
3 u; ?$ {5 }. M0 }* o; g6 U2:        Phone Line        Realtek AC'97 Audio2 {3 G" j: @( ^% A* e2 }2 q) ^
3:        TAD-In        Creative SB Live! Value
6 n( K  y+ v/ e( m4:        Line In        Realtek AC'97 Audio7 ^& ^. B9 V) y& h) R- C5 k
5:        SPDIF        Realtek AC'97 Audio
" R; o; m$ y. U( |. c6:        TV Tuner Audio        Realtek AC'97 Audio
8 X6 s0 C1 {$ u7:        CD Digital        Creative SB Live! Value# c& H: U+ C0 w6 l- p
8:        Microphone        Creative SB Live! Value
6 n+ Y2 c7 [3 C8 p1 b9:        Line-In 2/Mic 2        Creative SB Live! Value
4 C  d' u" {' s  ?2 l10:        S/PDIF-In        Creative SB Live! Value* M4 J; K2 g  t
11:        "What U Hear"        Creative SB Live! Value
+ a( \9 {2 J# V/ `
/ t% o5 ~; f% ?) P+ M! s9 s$ A) k
  ]  a9 ^2 P+ c) W0 U% q! W; |4 z/ m
4 b/ o2 e" O3 M* T+ s从控制面板读取的设备列表:. S$ V# x. o, {& Q, Z5 d

( ^; o% E( M0 O/ y$ J4 H% g: S1 }1 W  T' z( W2 W5 c2 ]8 D
播放设备:
* S7 _' u+ M" F1 V! W( ?9 v+ \) a+ P+ r0:        Speakers        Creative SB Live! Value6 [8 e; J4 t+ E% f& B
1:        Speakers        Realtek AC'97 Audio/ [7 ~: ], l( `) C5 T8 L) q
2:        Realtek Digital Output        Realtek AC'97 Audio
' g- f# S6 m2 B
& R: Q  A9 Y3 [+ |' }8 T- _( I3 b2 y% O, D6 V9 v1 a/ `
录制设备:5 H( J2 v/ s3 `# x( s
0:        Microphone        Creative SB Live! Value
/ k; y" O: a! w7 L( o2 ?1:        Line-In        Creative SB Live! Value
8 X7 R  w2 J" j- I  |' u2:        Line-In 2/Mic 2        Creative SB Live! Value
  }2 a! o) Q4 r* z3:        CD Digital        Creative SB Live! Value
8 ]# N; T2 e+ U8 e/ n' ?4:        S/PDIF-In        Creative SB Live! Value
' j! Q; I& }% h5:        "What U Hear"        Creative SB Live! Value$ Q6 E9 ]9 P/ v8 _" F  |+ _- Z
6:        TAD-In        Creative SB Live! Value
: ?9 Z; K# Y6 r7:        Microphone        Realtek AC'97 Audio1 a# f$ h+ ~) r* o$ U
8:        TV Tuner Audio        Realtek AC'97 Audio% Z* m/ A9 \( E' V2 {+ v- W
9:        Line In        Realtek AC'97 Audio3 m' }7 O3 u& N8 v1 [1 w5 B' b7 J; \
10:        SPDIF        Realtek AC'97 Audio
- Z0 O/ r. I' I; c" A0 M11:        Phone Line        Realtek AC'97 Audio
作者: gzXW    时间: 2007-12-14 22:33
标题: 回复 16# 的帖子
就是前面多了一个"2-"造成的,  
7 q  ?- s3 h) r, g针对这种情况, 新版的程序用了模糊比较, 你看能不能切换?:unsure:
作者: terryddb    时间: 2007-12-14 22:50
提示: 作者被禁止或删除 内容自动屏蔽
作者: gzXW    时间: 2007-12-14 23:09
:lol: 终于可以用了% y" g4 r1 u$ V1 T
8 y0 X3 j# o" k4 M  ]
我想, 如果插上两块同样的声卡, 是不是就分不清了: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 发表
2 q# U1 ^# O' K7 K8 \6 `. F. f% Z
谁这么BT,有两块L2:funk:

/ q' u2 ^4 O& a5 \! l% X9 |
9 g$ y0 ?4 R- @8 P
& M0 |3 q, r% m" L2- Lynx-TWO-B
. l* {  {5 V3 d8 l3 \8 ?$ f   D# G& u5 c9 D7 h
你说呢,我是以为你个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) S# P6 N1 ?$ {6 a: g4 u  F9 ?& m
Microsoft Windows NT 6.0.6000.0
4 X6 I( Q) B: OChinese (People's Republic of China): C3 h# L" F1 f& E1 d
2
8 K# Q- c* r8 x- S" y7 K* F8 KMemory Used: 20 MB
' ]5 G9 I9 a; V8 O3 p8 E; W9 d9 ?4 |: E+ l2 m
程序用API读取的设备列表:# A# w4 }# h0 Y0 R, |

% |# Z4 e% p! m) R7 G播放设备:/ A! \8 ^$ k8 a
0:        耳机        High Definition Audio 设备( Z* C1 V) S+ ]
1:        数字输出设备(SPDIF)        High Definition Audio 设备
- ]. I. E, H; g  u8 U# S; X) W. Y2:        扬声器        TOGO BlackGold(tm) II 5.1 Value Series WDM Interface
" t- T. U6 @2 m# A: R3:        扬声器        High Definition Audio 设备: T" n# i4 d4 ~* T% n* N
& ^- T, l; Z7 O, B

$ p$ _$ l1 c4 E/ ]录制设备:
5 N* s( s! M, b. ?5 X, U: }0:        线路输入        High Definition Audio 设备
5 x( n$ _) S& @! w; R1:        麦克风        High Definition Audio 设备
( l- c- j2 Y+ a2 l7 m# C4 a7 M* r2:        CD 音频        High Definition Audio 设备
. X4 T7 Z: ]1 I2 D* v: J' J/ g. ~3:        麦克风        High Definition Audio 设备  D% z2 l$ W4 [. ^
4:        S/PDIF        TOGO BlackGold(tm) II 5.1 Value Series WDM Interface- x* _* W5 Q- [7 N- V1 k6 Q
5:        线路输入        TOGO BlackGold(tm) II 5.1 Value Series WDM Interface5 z  p( A1 g8 m2 m; U4 l$ g4 N' F
6:        麦克风        TOGO BlackGold(tm) II 5.1 Value Series WDM Interface7 ]  |4 K( P# T8 i" T( `$ t' j

" _+ ?# y) m, ^; N% z' K* F
: T* |/ S8 t9 ~) H% @0 d5 g4 T" }( N3 ]' k+ s; \" f9 c7 A- W( k( s( f
从控制面板读取的设备列表:
+ k* T4 ]: P% o7 c# Z
0 Z% h, B9 f2 V& t( Z9 N- o9 s. T3 `7 K5 b3 X# o( c
播放设备:
; K; s; @7 t0 A0:        扬声器        High Definition Audio 设备' Z( E  h2 l) A! k; S7 q9 w0 U
1:        耳机        High Definition Audio 设备
0 h: ^6 d- D# l' W, S5 |: q2:        数字输出设备(SPDIF)        High Definition Audio 设备  K5 D* H# m* @2 N$ Z2 z0 B. p  N0 S
3:        扬声器        TOGO BlackGold(tm) II 5.1 Value Series WDM Interf
. g7 c4 f# Z; d5 r' _% v
$ w" r+ H' a, f2 v: Q: i( g
0 X2 h0 T2 j! ?录制设备:
3 i, ^( O$ X/ R5 k, e( k! I0:        麦克风        High Definition Audio 设备
5 r1 _8 U, E  U1:        麦克风        High Definition Audio 设备" u  \& H7 W( c; e
2:        线路输入        High Definition Audio 设备
0 Y) F2 W/ j8 M/ y0 U3:        CD 音频        High Definition Audio 设备
$ b* C1 y% X/ D$ X$ ?: w4:        麦克风        TOGO BlackGold(tm) II 5.1 Value Series WDM Interf  [" V) ~: ~: `4 R0 o- l
5:        线路输入        TOGO BlackGold(tm) II 5.1 Value Series WDM Interf8 O) A3 K( \* D& G+ F
6:        CD 唱机        TOGO BlackGold(tm) II 5.1 Value Series WDM Interf
5 B- m2 u5 _2 P2 n9 S2 N7:        S/PDIF        TOGO BlackGold(tm) II 5.1 Value Series WDM Interf  r8 m' m  b8 H5 v6 t8 Z1 }& p1 h
8:        立体声混音        TOGO BlackGold(tm) II 5.1 Value Series WDM Interf. n; _$ w! f$ p6 ^
9:        视频        TOGO BlackGold(tm) II 5.1 Value Series WDM Interf
. u) |4 r; L* @- C. F8 \' k10:        辅助        TOGO BlackGold(tm) II 5.1 Value Series WDM Interf
作者: gzXW    时间: 2007-12-20 11:18
原帖由 lcat12f 于 2007-12-19 18:36 发表 ( d" W5 g% j; [" e# |: s6 h
只有一块卡能生成快捷方式的说

5 d9 V9 A$ T8 b5 U! {0 Z( d8 ~8 Z: S- i8 S
:wacko: 看来模糊查找出问题了0 G3 {5 o9 Z3 R6 Y& @$ k
是不是只能切换“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 发表 7 g9 z- p' o1 t0 E
请问楼主,实现设置默认声卡功能的API是什么?如能告知,感激不尽。

" Q5 y% O: K5 o, N$ m2 D6 a% {% P) a" G/ n, l
顶楼已经说明了“微软没有公开Vista下设置默认设备的API,只有通过控制面板来实现”. A7 `7 U$ v% ~% s7 |# a' g; E
是通过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