• 欢迎访问开心洋葱网站,在线教程,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站,欢迎加入开心洋葱 QQ群
  • 为方便开心洋葱网用户,开心洋葱官网已经开启复制功能!
  • 欢迎访问开心洋葱网站,手机也能访问哦~欢迎加入开心洋葱多维思维学习平台 QQ群
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏开心洋葱吧~~~~~~~~~~~~~!
  • 由于近期流量激增,小站的ECS没能经的起亲们的访问,本站依然没有盈利,如果各位看如果觉着文字不错,还请看官给小站打个赏~~~~~~~~~~~~~!

C# 检测pc光驱里插入了光盘

OC/C/C++ 水墨上仙 1880次浏览

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# 检测pc光驱里插入了光盘
喜欢 (0)
加载中……