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#程序设计有所帮助。