gpt4 book ai didi

winapi - 列出音频输入设备 - VBA

转载 作者:行者123 更新时间:2023-12-02 23:22:29 31 4
gpt4 key购买 nike

我有一个复杂的 Access 数据库,我需要用它来做一些录音。我几乎可以使用外部解决方案进行所有工作,但我不得不从 Access 中选择我的输入设备。

我所需要的只是某种从 Windows 获取设备集合或其他东西的方法,我可以从那里获取它。 http://www.vbmonster.com/Uwe/Forum.aspx/vb/32848/listing-all-audio-devices做了一些接近我正在寻找的东西,除了输出而不是输入。我知道没有非常简单的方法可以做到这一点,但我知道这是可能的,但我似乎无法找到方法。

最佳答案

您链接的代码创建一个 SWbemObjectSet,然后列出其成员(声音设备)的属性。据我所知,您想要该对象但不想列出属性(“输出”)。

如果这是正确的,请创建一个函数来剥离输出语句并仅返回 SWbemObjectSet 对象。

Public Function getSoundDevices(Optional strComputer As String = ".") As Object
Const cstrQuery As String = "Select * from Win32_SoundDevice"
Dim objWMIService As Object 'TypeName = SWbemServicesEx '

Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
Set getSoundDevices = objWMIService.ExecQuery(cstrQuery, , 48)
Set objWMIService = Nothing
End Function

然后调用该函数以使用 SWbemObjectSet 作为其他代码的输入。
Public Sub test_getSoundDevices()
Dim objSoundDevices As Object 'TypeName = SWbemObjectSet '
Dim objDevice As Object 'TypeName = SWbemObjectEx '
Set objSoundDevices = getSoundDevices()
For Each objDevice In objSoundDevices
'* do what you want for each sound device here *'
Debug.Print "ProductName: " & objDevice.ProductName
Next objDevice
Set objDevice = Nothing
Set objSoundDevices = Nothing
End Sub

关于winapi - 列出音频输入设备 - VBA,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5494725/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com