本文實例講述了C#檢測pc光驅里是否插入了光盤的方法。分享給大家供大家參考。具體如下:
C# 檢測pc光驅里是否插入了光盤,需要添加System.Management.dll 的引用
using System;using System.Management;namespace CDROMManagement{ class WMIEvent {  static void Main(string[] args)  {   WMIEvent we = new WMIEvent();   ManagementEventWatcher w = null;   WqlEventQuery q;   ManagementOperationObserver observer = new ManagementOperationObserver();   // Bind to local machine   ConnectionOptions opt = new ConnectionOptions();   opt.EnablePrivileges = true; //sets required privilege   ManagementScope scope = new ManagementScope( "root//CIMV2", opt );   try   {    q = new WqlEventQuery();    q.EventClassName = "__InstanceModificationEvent";    q.WithinInterval = new TimeSpan( 0, 0, 1 );    // DriveType - 5: CDROM    q.Condition = @"TargetInstance ISA 'Win32_LogicalDisk' and TargetInstance.DriveType = 5";    w = new ManagementEventWatcher( scope, q );    // register async. event handler    w.EventArrived += new EventArrivedEventHandler( we.CDREventArrived );    w.Start();    // Do something usefull,block thread for testing    Console.ReadLine();   }   catch( Exception e )   {    Console.WriteLine( e.Message );   }   finally   {    w.Stop();   }  }  // Dump all properties  public void CDREventArrived(object sender, EventArrivedEventArgs e)  {   // Get the Event object and display it   PropertyData pd = e.NewEvent.Properties["TargetInstance"];   if (pd != null)   {    ManagementBaseObject mbo = pd.Value as ManagementBaseObject;     // if CD removed VolumeName == null    if (mbo.Properties["VolumeName"].Value != null)    {     Console.WriteLine("CD has been inserted");    }    else    {     Console.WriteLine("CD has been ejected");    }   }  } }}希望本文所述對大家的C#程序設計有所幫助。
新聞熱點
疑難解答