永发信息网

vb在win7下获得录音设备名不全

答案:2  悬赏:0  手机版
解决时间 2021-01-27 18:14
我的系统是win7,用vb访问声卡的录音设备名称,调用Winmm.dll下的waveInGetDevCaps,
得到录音设备的名称是 “线路输入 (Realtek High Definiti ”,但是实际上设备的名称应该是
“线路输入 (Realtek High Definition A ”,程序获得的名称少了几个字。
但是这段程序在 XP 下面运行是可以得到正确结果的,请问有人知道Win7下应该怎样做吗?
请给段VB的代码吧,谢谢!

以下是我之前的代码:
Public Declare Function waveInGetDevCaps Lib "Winmm.dll" Alias "waveInGetDevCapsA" (ByVal uDeviceID As Long, lpCaps As Waveoutcaps, ByVal uSize As Long) As Long
Public Type Waveoutcaps
Wmid As Integer
Wpid As Integer
Vdrivervesion As Long
Szpname As String * 64
Dwformats As Long
Wchannels As Integer
Dwsupport As Long
End Type

Public Function getInputDevName() As String
Dim Conse As Long
Dim Returncaps As Waveoutcaps

Dim Pname As String * 64

Pname = "_ERROR_"

Conse = waveInGetDevCaps(0, Returncaps, Len(Returncaps))
If Conse = MMSYSERR_NOERROR Then
Pname = Left$(Returncaps.Szpname, InStr(Returncaps.Szpname, Chr$(0)) - 1)
‘ 在Win7 中,此处得到的名称会缺少几个字
End If

getInputDevName = Pname
End Function
最佳答案
Waveoutcaps类型中的 Szpname应该是32才对 名字太长所以会获取不完整的
自己读注册表吧
全部回答
什么年代了,,还用VB... 再看看别人怎么说的。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
现场管理乱如何解决
沙宣精致烫染造型名店地址有知道的么?有点事
中国野马商丘森茂专营店地址在什么地方,想过
最小的最小平方数是1还是4?
青少年期每日钙储备约为(  )mg。A.100B.2
男钗环金命女天上火命结婚好吗
王者荣耀百里守约会被削吗
西安哪里的龙猫好点
靓一族怎么去啊,我要去那办事
秦岭的意思是什么啊?知道的请说下!
人本治疗模式改变了以往个案辅导模式的工作重
QQ飞车,现在的卓越和零点,哪一辆更好,听说
众泰·新能源电动汽车柘城NO.4怎么去啊,
九月份要自助冲绳游,于是乎想到自驾,冲绳需
在济南长途汽车总站有直达周村的车吗?多少钱
推荐资讯
食德的意思是什么啊?知道的请说下!
古代诗歌中两句含有“草”字的句子
怀仁七中2015年八年级成绩查询
磐龙教育地址在哪,我要去那里办事
富士康怎么才能调厂区
弗个子可以加个偏旁组成,都有什么字
肯德基菜丝沙拉的汁怎么调?
身基的意思是什么啊?知道的请说下!
西夏工商所地址在哪,我要去那里办事
【呢度】“呢度”“系度”在粤语中的意思是?
136+57-36如何简便运算
2o12款crv变速箱是5at吗
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?