打开"服务器管理器",选择"连接到服务器"
展开"事件日志"->"系统"->"CDROM"

解决方案 »

  1.   

    http://www.zdnet.com.cn/i/developer/story/200308/39156191/C0620.zip
    这是例子。
      

  2.   

    using System;
    using System.Management;namespace ConsoleApplication1 {
    class Class1 { [STAThread]
    static void Main(string[] args) {
    Class1 c1 = new Class1();
    Console.ReadLine();
    } private ManagementEventWatcher changeCDWatcher; public Class1(){
    WqlEventQuery changeCDQuery = new WqlEventQuery(
    "__InstanceModificationEvent",
    new TimeSpan(0,0,1),
    "TargetInstance isa \"Win32_CDROMDrive\""
    );
    changeCDWatcher = new ManagementEventWatcher(changeCDQuery); 
    changeCDWatcher.EventArrived += new EventArrivedEventHandler(ChangeCDHandler); 
    changeCDWatcher.Start();
    } void ChangeCDHandler(object sender, EventArrivedEventArgs e){
    string drive = ((ManagementBaseObject)(e.NewEvent["TargetInstance"]))["Drive"].ToString(); 
    Console.WriteLine("Driver{0} was changed.", drive);
    }
    }
    }
      

  3.   

    首先很感谢铅笔同志的回答,但是有两个问题:
      问题1:我在使用改程序监控时发现ChangeCDHandler会时不时得捕获到换盘的信息,不停得打出我cdrom里现有的盘的信息,但是另一个NewDriveHandler确不会发生这种情况,连接上一个usb移动硬盘后,只出现一次连接到新Drive的信息.
      问题2:虽然ChangeCDHandler没有问题,但是RemovedDriveHandler确完全不起作用,我很纳闷:难道要我不用弹出拔掉硬盘才能捕获到句柄的吗?试了后,还是没有RemovedDriveHandler的信息出现...  另外想问一下有没有RemoveCDHandler的方法??
      

  4.   

    另外请问 tacittui 的回答是什么意思?我的"事件日志"->"系统"->"里面没有CDRom一项,铅笔同志你有吗?
      

  5.   

    "不停得打出我cdrom里现有的盘的信息"有可能是因为虚拟光驱.
      

  6.   

    第一个问题,如graying(Graying.net) 所言,只有虚拟光驱报这个信息。
    第二个问题,我这里不出现。;-(
    我的系统请参考:
    Windows 2003 Server, 简体中文,专业版。
    VS.Net 2003简体中文版。