السلام عليكم ورحمة الله وبركاته
من فتره كبيره يمكن من منذ بداية تعلمي للدوت نت , احتفظت بكود يقوم بجلب السريال بتاع الهارد علي أمل ان الواحد ممكن يحتاجه وطبعا مكنتش فاهم منه حاجه :
Dim HDinformation As New ManagementObjectSearcher("SELECT * FROM Win32_PhysicalMedia")
Dim HD As ManagementObject
For Each HD In HDinformation.Get()
MsgBox(HD("SerialNumber").ToString())
Nextقلت ألقي نظره علي الكود ده اللي محتفظ بيه من مده , وطبعا أنا لم أتعامل مع هذه الـ Management Namespace في الدوت نت قبل كده , فبدأت أبحث في الـ MSDN والكتب اللي عندي عن أي شئ يفيدني علشان أفهم الحوار ده ماشي ازاي , وفعلا قضيت اليوم بكامله علشان أفهم ..., بس مش علشان أفهم الكود ده (الكود سهل وبسيط) , لكن قضيت اليوم كله علشان أفهم الـ WMI , CIM وهي اختصارا للمصطلحات الـ Windows Management Instrumentaion و الـ Component Information Model , صحيح مفهمتش 100% ولاحتي 75% لكن يعني الي حد ما فهمت ما علاقه هذه المصطلحات ببعضها , وقلت أكتب فيهم درس صغير علي قدي حتي علشان تثبت المعلومات في دماغي , لأن الموضوع طلع كبير جدا ومش سهل ,
قبل الدخول في شرح الكود السابق .. يجب معرفة معني المفاهيم التي ذكرناها ,
CIM (Common Information Model) :
هي عباره عن نموذج يحتوي علي معلومات مثل معلومات عن الـ Hard Disk و الـ Bios و الـ Processor و الـ Applications و الـ Network والـ Devices وغيرها ..., وهي تتألف منNamespaces, Classes لها خصائص كائنية التوجه مثل الـ Inheritance, Polymorphism ,
WMI (Windows Management Instrumentation) :
هي عباره عن جزء من النظام يمكنك من استخدام الـ CIM للتعامل مع المعلومات التي تقدمها , أي انها هي الصوره التي تمكن المبرمج من استخدام الـ CIM وذلك بعدة طرق كالآتي :
COM API for WMI :C or C++ applications Scripting API for WMI : 1 - Scripting Languages like : VBS , JS , ActiveX script hosting 2 - Visual Basic . 3 - Active Server Pages. .NET Framework applications written in C#, Visual Basic .NET, or J# : System .Management.
وبالتأكيد يكون التعامل مع هذه المعلومات التي يقدمها النموذج أفضل باستخدام الـ COM API ولكنه ليس الطريق السهل , أما عن الطريق الثاني Scripting API فهو فعلا الطريق السهل ولكنه بالتأكيد ليس بقوة الطريق الأول , ولحسن الحظ قامت ميكروسوفت بتقديم حل يغني عن الطريقين السابقين ويتمثل في الـ Management Namespace ,
WQL (WMI Query Language) :
هي لغة استعلام تستخدم لتسهيل التعامل مع المعلومات التي يقدمها الـ WMI باستخدام نموذج الـ CIM ,
الموضوع كبير جدا ولكن باذن الله سأحاول تقديم كل ما أستطيع تقديمه , وللحصول علي معلومات أكثر يمكنك البحث في الـ MSDN ,
أخشي أن يكون شرحي يحتوي علي أخطاء فان وجدت خطأ فلا تتردد في تصحيحه , والي اللقاء في الدرس التالي ,,,
