2016-03-22 3 views
1

Я использую NAudio в своем проекте C#, и я ищу способ перечислить устройства ввода звука (микрофон и т. Д.), Поэтому я могу получить их полное имя (не только 31- имя пользователя, которое я могу получить от NAudio). Я прошел через несколько постов, где люди были перечисляющих аудио устройства вывода с помощью WMI:Перечислить устройства ввода аудио с WMI

ManagementObjectSearcher objSearcher = new ManagementObjectSearcher(
     "SELECT * FROM Win32_SoundDevice"); 

ManagementObjectCollection objCollection = objSearcher.Get(); 

Можно перечислить устройство ввода таким образом, как хорошо?

Благодаря

+0

Вы пробовали это? В чем проблема, с которой вы столкнулись? – vendettamit

+0

Да, но я спрашиваю, как должен выглядеть запрос, если я хочу перечислить устройства ввода (микрофон и т. Д.), А не устройства вывода –

ответ

2

Чтобы исследовать WMI запросов вы можете использовать инструмент, который генерирует код WMI для вас. У вас будет много классов управления WMI для получения информации. Вы можете скачать этот инструмент из центра загрузки Microsoft here

Я написал (а) блог post несколько лет назад об использовании служб управления WMI для администрирования. Надеюсь, это даст вам начало.

Вот фрагмент, созданный с помощью инструмента, чтобы получить список установленных звуковых карт на устройстве.

public static void Main() 
{ 
    try 
    { 
     ManagementObjectSearcher searcher = 
      new ManagementObjectSearcher("root\\CIMV2", 
      "SELECT * FROM Win32_SoundDevice"); 

     foreach (ManagementObject queryObj in searcher.Get()) 
     { 
      Console.WriteLine("-----------------------------------"); 
      Console.WriteLine("List of sound cards installed"); 
      Console.WriteLine("-----------------------------------"); 
      Console.WriteLine("ProductName: {0}", queryObj["ProductName"]); 
      Console.WriteLine("Availability: {0}", queryObj["Availability"]); 
      Console.WriteLine("Caption: {0}", queryObj["Caption"]); 
      Console.WriteLine("ConfigManagerErrorCode: {0}", queryObj["ConfigManagerErrorCode"]); 
      Console.WriteLine("ConfigManagerUserConfig: {0}", queryObj["ConfigManagerUserConfig"]); 
      Console.WriteLine("CreationClassName: {0}", queryObj["CreationClassName"]); 
      Console.WriteLine("Description: {0}", queryObj["Description"]); 
      Console.WriteLine("DeviceID: {0}", queryObj["DeviceID"]); 
      Console.WriteLine("DMABufferSize: {0}", queryObj["DMABufferSize"]); 
      Console.WriteLine("ErrorCleared: {0}", queryObj["ErrorCleared"]); 
      Console.WriteLine("ErrorDescription: {0}", queryObj["ErrorDescription"]); 
      Console.WriteLine("InstallDate: {0}", queryObj["InstallDate"]); 
      Console.WriteLine("LastErrorCode: {0}", queryObj["LastErrorCode"]); 
      Console.WriteLine("Manufacturer: {0}", queryObj["Manufacturer"]); 
      Console.WriteLine("MPU401Address: {0}", queryObj["MPU401Address"]); 
      Console.WriteLine("Name: {0}", queryObj["Name"]); 
      Console.WriteLine("PNPDeviceID: {0}", queryObj["PNPDeviceID"]); 
      Console.WriteLine("PowerManagementSupported: {0}", queryObj["PowerManagementSupported"]); 
      Console.WriteLine("Status: {0}", queryObj["Status"]); 
      Console.WriteLine("StatusInfo: {0}", queryObj["StatusInfo"]); 
      Console.WriteLine("SystemCreationClassName: {0}", queryObj["SystemCreationClassName"]); 
      Console.WriteLine("SystemName: {0}", queryObj["SystemName"]); 
     } 
    } 
    catch (ManagementException e) 
    { 
     Console.WriteLine("An error occurred while querying for WMI data: " + e.Message); 
    } 
} 

Вот результат -

----------------------------------- 
List of sound cards installed 
----------------------------------- 
ProductName: Realtek High Definition Audio 
Availability: 
Caption: Realtek High Definition Audio 
ConfigManagerErrorCode: 0 
ConfigManagerUserConfig: False 
CreationClassName: Win32_SoundDevice 
Description: Realtek High Definition Audio 
DeviceID: HDAUDIO\FUNC_01&VEN_10EC&DEV_0662&SUBSYS_103C304A&REV_1001\4&3867FD9A&0&0001 
DMABufferSize: 
ErrorCleared: 
ErrorDescription: 
InstallDate: 
LastErrorCode: 
Manufacturer: Realtek 
MPU401Address: 
Name: Realtek High Definition Audio 
PNPDeviceID: HDAUDIO\FUNC_01&VEN_10EC&DEV_0662&SUBSYS_103C304A&REV_1001\4&3867FD9A&0&0001 
PowerManagementSupported: False 
Status: OK 
StatusInfo: 3 
SystemCreationClassName: Win32_ComputerSystem 
SystemName: PC-2322Q1 
0

Эти звуковые устройства, так что он включает в себя устройства ввода и вывода. Звуковые карты могут иметь 0 или более выходов и 0 или более входов.

Смежные вопросы