قائمة جميع مودم النظام
سؤال
هل هناك طريقة في التعليمات البرمجية المدارة لسرد أجهزة المودم/الهاتفية المثبتة على النظام؟ إذا لم يكن لدى .NET طريقة ، هل يمكن أن توجهني في اتجاه؟
المحلول
سيحتوي WMI على جميع المعلومات التي تحتاجها في Win32_POTSModem
صف دراسي. في C# أو .NET ، يمكنك الاستفادة من System.Management
مساحة الاسم للاستعلام عن WMI.
داخل .NET ، يمكنك استخدام mgmtclassgen.exe من النظام الأساسي SDK لإنشاء كائن فئة يمثل فئة WMI.
سيكون سطر الأوامر هكذا:
C:\Program Files\Microsoft SDKs\Windows\v6.0A\Bin\mgmtclassgen.exe Win32_POTSModem /L CS /P c:\POTSModem\Win32_POTSModem.cs
وبعد ذلك يمكنك استخدام ذلك في الكود الخاص بك:
using System;
using System.Collections.Generic;
using System.Management;
using ROOT.CIMV2.Win32;
public class MyClass
{
public static void Main()
{
foreach (POTSModem modem in POTSModem.GetInstances()) {
Console.WriteLine(modem.Description);
}
}
}
يبدو الإخراج هكذا:
ThinkPad Modem - Internal Modem
Speed: 56000
قد ترغب أيضًا في إلقاء نظرة على هذه المقالة: CodeProject: كيفية: (تقريبًا) كل شيء في WMI عبر C# - الجزء 3: الأجهزة.. قام المؤلف بإنشاء غلاف فئة بسيط حول كائنات WMI مماثلة لـ mgmtclassgen.exe ، ولكن كل شيء يتم من أجلك.
نصائح أخرى
فقط بعض الأفكار للأجيال القادمة.
قدم christopher_g_lewis حلًا جيدًا جدًا. ولكن قبل استخدام WMI ، يتعين علينا التحقق من ذلك Windows Management Instrumentation
(WMI
, ، اسم الخدمة Winmgmt
) يعمل (كيف افعلها؟). بالطبع ، توصي MS بعدم لمس هذه الخدمة ، لأنها جزء من أشياء النظام ، لكن الناس يقومون بإيقافها في بعض الأحيان.
علاوة على ذلك ، قد يكون من المفيد في بعض الأحيان تحقق من إصدار WMI قبل استخدامه.
إذا أردت أن الحصول على قائمة المودم و هو متصل في الوقت الحالي ، يمكنك التحقق هذا الحل. إنه يعمل ببطء ، لكنه يظهر جميع أجهزة المودم المتصلة ويستبعد Null modem cables
.