أول شيء أسدل قائمة Servers ستلاحظ وجود اسم حاسوبك , أسدل هذه القائمة,اذهب إلى Management Classes بعد أن تفتحها ستلاحظ وجود عدد من الفئات مثل Process,Services,Operating System ......الخ
والآن جرب أن تفتح القائمة Process ستلاحظ ظهور جميع العمليات التي تقوم بها في جهازك و الآن كيف سنحول هذه الفئات إلى فئات عادية يمكننا التعامل معها برمجياً ؟ الجواب بضغطة زر!!! فقط اضغط بالزر الأيمن على Processأو على أي فئة من هذه الفئات ومن ثم اضغط على Generate Managed Class. هذا كل شيء!! ولتتأكد من ذلك اذهب Solution Explorer ستلاحظ ظهور فئة مثل هذه ROOT.CIMV2.Win32_Process.vb
هناك مشكلة بسيطة أريد أن أقولها لك هي أن هذه الفئات لا تعمل إلا إذا كان Option Strict Off
============================================
ملاحظة هامة قبل البدء بالأمثلة:
هناك الكثير والكثير من فئات WMI غير موجودة في Server Explorer و لإضافة فئة غير موجودة اذهب Management Classes التي تحدثنا سابقاً واضغط عليها بالزر الأيمن ومن القائمة المنسدلة اضغط على Add Classes..
سوف يظهر لك نافذة جديدة انتقل إلى مربع النص واكتب : USB ثم اضغط الزر Find Next إلى أن تحصل على هذه الفئة USB Controllers عند إذن اضغط الزر Add> واضغط الزر OK لتلاحظ إضافة فئة USB Controllers إلى Management Classes. وعلى كل حال سأقول لك عند كل مثال اسم الفئة التي ستبحث عنها إلا إذا كانت موجودة.
والآن سأعرض لك أمثلة حول التعامل معها برمجياً:
============================================
هذا المثال لجلب معلومات حول المعالج( الفئة موجودة)
Dim prc As ROOT.CIMV2.Processor
For Each prc In ROOT.CIMV2.Processor.GetInstances
ListBox1.Items.Add(prc.CurrentClockSpeed) 'السرعة
ListBox1.Items.Add(prc.Description) 'الوصف
ListBox1.Items.Add(prc.Family) 'العائلة
ListBox1.Items.Add(prc.Manufacturer) 'المصنع
ListBox1.Items.Add(prc.L2CacheSize) 'L2Cache حجم
ListBox1.Items.Add(prc.NumberOfCores) 'عدد النوى
Next
=================================
وهذا المثال خاص بمنافذ USB(اسم الفئة التي ستبحث عنها USB Controllers )
Dim usb As ROOT.CIMV2.USBController
For Each usb In ROOT.CIMV2.USBController.GetInstances
ListBox1.Items.Add(usb.MaxNumberControlled)
ListBox1.Items.Add(usb.Manufacturer)
ListBox1.Items.Add(usb.ProtocolSupported)
ListBox1.Items.Add(usb.Availability)
ListBox1.Items.Add("======")
Next
=================================
أما هذا المثال فهو خاص ب Serial Ports (اسم الفئة Serial Ports)
Dim sr As ROOT.CIMV2.SerialPort
For Each sr In ROOT.CIMV2.SerialPort.GetInstances
ListBox1.Items.Add(sr.Caption)
ListBox1.Items.Add(sr.SupportsIntTimeouts)
ListBox1.Items.Add(sr.SupportsParityCheck)
ListBox1.Items.Add(sr.SupportsElapsedTimeouts)
ListBox1.Items.Add(sr.SupportsXOnXOff)
ListBox1.Items.Add(sr.TimeOfLastReset)
ListBox1.Items.Add(sr.MaxNumberControlled)
ListBox1.Items.Add(sr.MaximumInputBufferSize)
ListBox1.Items.Add(sr.MaximumOutputBufferSize)
ListBox1.Items.Add("======")
Next
=================================
وأخيراً هذا المثال من أجل Video Controller(اسم الفئة Video Controllers)
Dim vd As ROOT.CIMV2.VideoController
For Each vd In ROOT.CIMV2.VideoController.GetInstances
ListBox1.Items.Add(vd.Caption)
ListBox1.Items.Add(vd.CurrentNumberOfColors)
ListBox1.Items.Add(vd.CurrentScanMode)
ListBox1.Items.Add(vd.VideoProcessor)
ListBox1.Items.Add(vd.VideoMode)
ListBox1.Items.Add(vd.VideoMemoryType)
ListBox1.Items.Add(vd.VideoArchitecture)
ListBox1.Items.Add(vd.MaxMemorySupported)
ListBox1.Items.Add("======")
Next
=================================
خاتمة:
أتمنى أن أكون قد وفقت في عرض الدرس..
و أتمنى أيضا أن أكون قد أفدتك ولو بمعلومة واحدة......
أخوك مهند وهيبة.....
والله ولي التوفيق..........