加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

C#控制台列出当前所有可用的打印机列表

发布时间:2020-12-15 17:56:30 所属栏目:百科 来源:网络整理
导读:今天PHP站长网 52php.cn把收集自互联网的代码分享给大家,仅供参考。 // The initial C# code for the WMI query was generated by WMI Code Generator,Version 5.00,http://www.robvanderwoude.com/wmigen.php using Sys

以下代码由PHP站长网 52php.cn收集自互联网

现在PHP站长网小编把它分享给大家,仅供参考

// 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 + "rootCIMV2";
 
                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 )
        {
            /*
            ListPrinters,Version 1.10
            List all local printers on the specified computer
 
            Usage:  LISTPRINTERS  [ computername ]
 
            Where:  'computername'  is the (optional) name of a remote computer
                                    (default if not specified: local computer)
 
            Written by Rob van der Woude
            http://www.robvanderwoude.com
            */
 
            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" );
            Console.Error.WriteLine( "http://www.robvanderwoude.com" );
            return 1;
        }
    }
}

以上内容由PHP站长网【52php.cn】收集整理供大家参考研究

如果以上内容对您有帮助,欢迎收藏、点赞、推荐、分享。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读