CD-ROM Loaded

Microsoft .NET Framework, ASP.NET, Visual C# (CSharp, C Sharp, C-Sharp) Developer Training, Visual Studio


Jump to: navigation, search
C# Code Snippets

C# Source Code Bank

See also …
edit

This C# code snippet detects if a CD-ROM is loaded in the CD-ROM drive of a PC.

In order to interact with the CD-ROM, you need to use Windows Management Instrumentation (WMI). The .NET Framework provides two sets of classes for interaction with WMI. The System.Management Namespace provides access to management information and events about the system. The System.Management.Instrumentation Namespaceprovides classes to expose management information and events of an application to WMI.

using System;
using System.Management;
 
class App
{
  public static void Main()
  {
    SelectQuery query = new SelectQuery( "select * from win32_logicaldisk where drivetype=5" );
    ManagementObjectSearcher searcher = new ManagementObjectSearcher(query);
 
    foreach( ManagementObject mo in searcher.Get() )
    {
      // If both properties are null I suppose there's no CD
      if( ( mo["volumename"] != null ) || ( mo["volumeserialnumber"] != null ) )
      {
        Console.WriteLine( "CD is named: {0}", mo["volumename"] );
        Console.WriteLine( "CD Serial Number: {0}", mo["volumeserialnumber"] );
      }
      else
      {
        Console.WriteLine( "No CD in Unit" );
      }
    }
 
    // Here to stop app from closing
    Console.WriteLine( "\nPress Return to exit." );
    Console.Read();
  }
}

Note... In order to use the System.Management namespace in .NET 2, you will need to add a reference to the System.Management.dll. This can be done in the IDE by right-clicking on the project in the solution explorer and choosing Add Reference... from the list. The dll is on the first tab towards the end of the list of items.


MSDN references


Personal tools