C#使用控制台列出当前所有可用的打印机列表
本文实例讲述了C#使用控制台列出当前所有可用打印机列表的方法。分享给大家供大家参考。具体如下:
//TheinitialC#codefortheWMIquerywasgeneratedbyWMICode //Generator,Version5.00,http://www.robvanderwoude.com/wmigen.php usingSystem; usingSystem.Management; usingSystem.Collections; namespaceRobvanderWoude { publicclassListPrinters { publicstaticintMain(string[]args) { try { stringcomputer=string.Empty; #regionCommandlineparsing //Only1optionalargumentallowed:aremotecomputername if(args.Length>1) { thrownewException("Invalidcommandlinearguments"); } if(args.Length==1) { //We'lldisplaya'friendly'messageifhelpwasrequested 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": returnWriteError(string.Empty); default: returnWriteError("Invalidcommandlineargument"); } } else { computer="\\\\"+args[0]+"\\"; } } #endregion stringwmins=computer+"root\\CIMV2"; ManagementObjectSearchersearcher=newManagementObjectSearcher(wmins,"SELECT*FROMWin32_Printer"); ArrayListprinters=newArrayList(); foreach(ManagementObjectqueryObjinsearcher.Get()) { printers.Add(queryObj["DeviceID"]); } printers.Sort(); foreach(stringprinterinprinters) { Console.WriteLine(printer); } return0; } catch(Exceptione) { returnWriteError(e); } } publicstaticintWriteError(Exceptione) { returnWriteError(e==null?null:e.Message); } publicstaticintWriteError(stringerrorMessage) { stringfullpath=Environment.GetCommandLineArgs().GetValue(0).ToString(); string[]program=fullpath.Split('\\'); stringexename=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+",Version1.10"); Console.Error.WriteLine("Listalllocalprintersonthespecifiedcomputer"); 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'isthe(optional)nameofaremotecomputer"); Console.Error.WriteLine("(defaultifnotspecified:localcomputer)"); Console.Error.WriteLine(); Console.Error.WriteLine("WrittenbyRobvanderWoude"); return1; } } }
希望本文所述对大家的C#程序设计有所帮助。