手机
当前位置:查字典教程网 >编程开发 >C#教程 >C#检测pc光驱里是否插入了光盘的方法
C#检测pc光驱里是否插入了光盘的方法
摘要:本文实例讲述了C#检测pc光驱里是否插入了光盘的方法。分享给大家供大家参考。具体如下:C#检测pc光驱里是否插入了光盘,需要添加System...

本文实例讲述了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( "rootCIMV2", 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#程序设计有所帮助。

【C#检测pc光驱里是否插入了光盘的方法】相关文章:

C# 批处理调用方法

基于反射解决类复制的实现方法

HTML文本框的值改变后触发后台代码的方法

C# 抓取网页内容的方法

C# 去除首尾字符或字符串的方法

判断图片-判断位图是否是黑白图片的方法

解决C#程序只允许运行一个实例的几种方法详解

C#.NET字符串比较中忽略符号的方法

C# 禁用鼠标中间键的方法

C# WINFORM 强制让窗体获得焦点的方法代码

精品推荐
分类导航