C# 检测pc光驱里插入了光盘的代码
将开发过程经常用的一些代码段做个备份,如下代码段是关于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"); } }}
}
}
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。