温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

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

发布时间:2020-08-08 04:29:46 来源:网络 阅读:303 作者:ebsdg 栏目:移动开发

将开发过程经常用的一些代码段做个备份,如下代码段是关于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");
    }
  }
}

}
}

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI