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

}
}

原文地址:http://blog.51cto.com/14122754/2331199

时间: 2024-07-31 19:08:54

C# 检测pc光驱里插入了光盘的代码的相关文章

在linux(Ubuntu)下检测USB设备的插入和移除

此代码用于检测USB设备的插入,拔出,在Ubuntu下测试通过 #!/usr/bin/env python import glib #apt-get install python-gudev import gudev import pynotify import sys def callback(client, action, device, user_data):     device_vendor = device.get_property("ID_VENDOR_ENC")    

通过excel向数据库(ORACLE)里插入数据

大家都知道PL/SQL可以向excel复制数据,同样我们也可以通过excel向数据库里插入数据. 下面我们以一个简单的例子并配以截图演示 首先,我们创建一个表test CREATE TABLE test( id NUMBER ); 接着我们执行如下语句 SELECT * FROM test FOR UPDATE; 并点开上图的锁 接着我们在excel里复制一列数值型数据 选中PL/SQL查询结果里列名id,ctrl+v粘贴以上数据 点击绿色箭头 并commit提交即可完成向数据库插入excel的

php判断检测一个数组里有没有重复的值

php判断检测一个数组里有没有重复的值 php里有一个处理数组重复值得函数array_unique,我们的思路就是用这个函数来实现的. if (count($array) != count(array_unique($array))) {       echo '该数组有重复值';   }

检测字符串中是否含有非法字符js代码

检测字符串中是否含有非法字符js代码:通常情况下,网站输入的字符串内容是需要经过检测的,因为有些字符带有一定的危险性,会对站点带来一定的危害,下面就介绍一下如何检测一个字符串是否含有非法字符,代码如下: function checks(str){ szMsg="[#_%&'\",;:=!^]"; alertStr=""; for(i=1;i<szMsg.length+1;i++){ if(str.indexOf(szMsg.substring

夏日里的狂欢-西瓜与代码齐飞

夏日带给我们的不止是炎热的天气,还有学习上的疲惫!为了活跃同学们的学习气氛,为了去除同学们的疲劳,更为了缓解这炎热的天气!成都传智播客java培训班7月5日基础班的同学们,在班主任王老师的带领下,举行了一个场休闲益智的班会活动! 满满的西瓜送清凉,衷心的关怀去疲劳! 王老师亲自操刀,为同学们切西瓜! 由于涉及同学们的吃相问题,在这里就略过了... 找座位记名字,看词比划猜! 活动一:首先学员自我介绍一下,例如,我是来自成都的某某某,或者我是喜欢吃西瓜的某某某!然后打乱座位,每人抽取一个号码,当念

如何在编辑器里添加CSS或JS代码

最近在使用Wordpress做一个网站项目,需要在后台编辑器里添加自定义的JS脚本和CSS 在编辑器里添加好后,发现在浏览器里JS脚本执行有问题并且CSS的脚本直接被WordPress保存的时候过滤掉了 经过排查发现原因是Wordpress默认的TinyMCE在从代码模式切换到可视化模式的时候对脚本时行了处理 更无耻的是CSS的脚本直接被删除了 //编辑器里代码模式下的代码 <script type="text/javascript"> //my code.... <

C#检测U盘是否插入

public partial class Form1 : Form { #region u盘属性 public const int WM_DEVICECHANGE = 0x219;//U盘插入后,OS的底层会自动检测到,然后向应用程序发送"硬件设备状态改变"的消息 public const int DBT_DEVICEARRIVAL = 0x8000; //就是用来表示U盘可用的.一个设备或媒体已被插入一块,现在可用. public const int DBT_CONFIGCHANGE

javafx 在tableView里插入checkbox

在javafx中如何在tableView里面插入checkbox?在stackoverflow上有相关的回答http://stackoverflow.com/questions/7217625/how-to-add-checkboxs-to-a-tableview-in-javafx. 个人认为stackoverflow上的回复太过于繁琐,便提出一个新思路,就是在数据类里面加入一个checkbox,然后直接绑定. 首先定义一个封装了的CheckBox类 package App.Public.UI

javascript小实例,PC网页里的拖拽(转)

这是现在的效果,可能改了一些,原来的效果是,里面的这张图是可以上下左右拖动的,然后房子上面的显示的楼栋号,也跟着图片一起移动,当时js能力还不行,未能实现项目经理的要求,不过后来项目经理又把这个效果推掉了,换了另外的一个效果 尽管项目经理不想要这个效果了,但是当时就在我心里留下了一个节,到今天都忘不了这个梗. 好了,这就是我今天想写这篇博客的初衷,希望能给想实现这类拖拽效果,但是不知道该怎么去实现的同学,提供一种思路,不给青春留遗憾,当然实现拖拽的方法有很多,这里就只介绍JavaScript中的