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");
    }
  }
}

}
}

转载于:https://blog.51cto.com/14122754/2331199

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值