C#使用控制台列出当前所有可用打印机列表的方法。分享给大家供大家参考。具体如下:

 // The initial C# code for the WMI query was generated by WMI Code //Generator, Version 5.00, http://www.robvanderwoude.com/wmigen.php using System; using System.Management; using System.Collections; namespace RobvanderWoude {  public class ListPrinters  {   public static int Main( string[] args )   {    try   {     string computer = string.Empty;     #region Command line parsing     // Only 1 optional argument allowed: a remote computer name     if ( args.Length > 1 )     {      throw new Exception( "Invalid command line arguments" );     }     if ( args.Length == 1 )     {      // We'll display a 'friendly' message if help was requested      if ( args[0].StartsWith( "/" ) || args[0].StartsWith( "-" ) )      {       switch ( args[0].ToUpper( ) )       {        case "/?":        case "-?":        case "/H":        case "-H":        case "--H":        case "/HELP":        case "-HELP":        case "--HELP":         return WriteError( string.Empty );        default:         return WriteError( "Invalid command line argument" );       }      }      else     {       computer = "\\\\" + args[0] + "\\";      }     }     #endregion     string wmins = computer + "root\\CIMV2";     ManagementObjectSearcher searcher = new ManagementObjectSearcher( wmins, "SELECT * FROM Win32_Printer" );     ArrayList printers = new ArrayList( );     foreach ( ManagementObject queryObj in searcher.Get( ) )     {      printers.Add( queryObj["DeviceID"] );     }     printers.Sort( );     foreach ( string printer in printers )     {      Console.WriteLine( printer );     }     return 0;    }    catch ( Exception e )    {     return WriteError( e );    }   }   public static int WriteError( Exception e )   {    return WriteError( e == null ? null : e.Message );   }   public static int WriteError( string errorMessage )   {    string fullpath = Environment.GetCommandLineArgs( ).GetValue( 0 ).ToString( );    string[] program = fullpath.Split( '\\' );    string exename = program[program.GetUpperBound( 0 )];    exename = exename.Substring( 0, exename.IndexOf( '.' ) );    if ( string.IsNullOrEmpty( errorMessage ) == false )    {     Console.Error.WriteLine( );     Console.ForegroundColor = ConsoleColor.Red;     Console.Error.Write( "ERROR: " );     Console.ForegroundColor = ConsoleColor.White;     Console.Error.WriteLine( errorMessage );     Console.ResetColor( );    }    Console.Error.WriteLine( );    Console.Error.WriteLine( exename + ", Version 1.10" );    Console.Error.WriteLine( "List all local printers on the specified computer" );    Console.Error.WriteLine( );    Console.Error.Write( "Usage: " );    Console.ForegroundColor = ConsoleColor.White;    Console.Error.Write( exename.ToUpper( ) );    Console.Error.WriteLine( " [ computername ]" );    Console.ResetColor( );    Console.Error.WriteLine( );    Console.Error.WriteLine( "Where: 'computername' is the (optional) name of a remote computer" );    Console.Error.WriteLine( " (default if not specified: local computer)" );    Console.Error.WriteLine( );    Console.Error.WriteLine( "Written by Rob van der Woude" );    return 1;   }  } } 

codego.net代码