วันจันทร์ที่ 9 มีนาคม พ.ศ. 2552

เขียนโปรแกรมเพื่อรับค่าเกี่ยวกีับข้อมูลของ Hardware [C#]

เป็นการใช้ WMI ในการช่วยเพื่อเข้าถึงข้อมูลและคุณลักษณะของ Hardware

ก่อนอื่ทำการแอด referrence ไปที่ Windows Management DLL โดยการไปที่
Project->Add Reference แล้วเลือกที่ System.Management

เริ่มทำการเขียนโปรแกรมเ
พื่อรับข้อมูลของ Hardware อย่างง่ายๆเช่น ชื่อของ ไดร์ว CD rom

ก่อนอื่นทำการแอด namespace ที่ต้องการใช้งาน
using System.Management;
using System.Management.Instrumentation;

ในส่วนของการดึงข้อมูลออกมานั้นเราต้องส่ง Query เข้าไปให้โดยรุปแบบของ
Query ก็จะคล้ายๆของ SQL
เช่นถ้าต้องการชื่อของ CD-rom Drive
ก็ให้เขียน Query ดังนี้

"Select Name from Win32_CDROMDrive"

แล้วสร้าง Object ของ คลาส

ManagementObjectSearcher
โดยใส่ Query ข้างต้นเป็น ค่าพารามิเตอให้กับ Constructor ของคลาส

ManagementObjectSearcher searcher = 
new
ManagementObjectSearcher("Select Name from Win32_CDROMDrive");

เมื่อเราสร้าง qurey ได้แล้วจากนั้นก็จะใช้ foreach ในการช่วยเข้าถึงข้อมูลของ Drive ในแต่ละ Drive

foreach(ManagementObject cdrom in searcher.Get())
{
Console.WriteLine("CD-ROM Name: {0}", cdrom.GetPropertyValue("Name"));
}

ฟังชันก์ GetPropertyValue ต้องการชื่อของข้อมูลที่เราต้องการเป็นพารามิเตอ ในตัวอย่างข้างต้นก็คือ Name
แต่มีข้อจำกัดอยู่ที่ เราต้องใส่ชื่อของข้อมูลที่ต้องการไว้ใน Query string ด้วย

ตัวอย่าง Code


using System;
using System.Management;
using System.Management.Instrumentation;

namespace ConsoleApplication1
{
class Class1
{
[STAThread]
static void Main(string[] args)
{
ManagementObjectSearcher searcher =
new ManagementObjectSearcher("Select Name from Win32_CDROMDrive");
foreach(ManagementObject cdrom in searcher.Get())
{
Console.WriteLine("Name: {0}\n",
cdrom.GetPropertyValue("Name"));
}
}
}
}





สามารถหาข้อมูลเพิ่มเติมได้ที่
http://msdn.microsoft.com/library/en-us/wmisdk/wmi/wmi_classes.asp

ไม่มีความคิดเห็น:

แสดงความคิดเห็น