C# 檢測pc光碟機裡插入了光碟的程式碼
阿新 • • 發佈:2018-12-16
將開發過程經常用的一些程式碼段做個備份,如下程式碼段是關於C# 檢測pc光碟機裡插入了光碟的程式碼,應該能對碼農們也有好處。
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();
ConnectionOptions opt = new ConnectionOptions(); ManagementScope scope = new ManagementScope( "root\CIMV2", opt ); try { q = new WqlEventQuery(); q.EventClassName = "__InstanceModificationEvent"; q.WithinInterval = new TimeSpan( 0, 0, 1 ); q.Condition = @"TargetInstance ISA 'Win32_LogicalDisk' and TargetInstance.DriveType = 5"; w = new ManagementEventWatcher( scope, q ); w.EventArrived += new EventArrivedEventHandler( we.CDREventArrived ); w.Start(); Console.ReadLine(); } catch( Exception e ) { Console.WriteLine( e.Message ); } finally { w.Stop(); } } public void CDREventArrived(object sender, EventArrivedEventArgs e) { PropertyData pd = e.NewEvent.Properties["TargetInstance"]; if (pd != null) { ManagementBaseObject mbo = pd.Value as ManagementBaseObject; if (mbo.Properties["VolumeName"].Value != null) { Console.WriteLine("CD has been inserted"); } else { Console.WriteLine("CD has been ejected"); } } }
}
}