using System; using System.Runtime.InteropServices; using System.Runtime.Serialization; namespace Sample.GetPrinter { class App { static void Main(string[] args) { Console.WriteLine("请输入你想搜索类型的序号:"); Console.WriteLine("1. Default printer(only Win95,Win98,WinME)\n2. Enumerates the locally installed printers;\n3. Enumerates the list of printers to which the user has made previous connections;\n4. Enumerates the printer identified by Name.;\n5. Enumerates network printers and print servers in the computer's domain;\n6. Enumerates printers that have the shared attribute;\n7. Enumerates network printers in the computer's domain;\n=========================="); int pt =0; try { pt=Int32.Parse(Console.ReadLine()); } catch(Exception e) { Console.WriteLine("错误信息: {0}",e.Message); return; } PRINTER_ENUM printerKind = GetPrinterConType(pt); PrinterSearcher p = new PrinterSearcher(); PrinterSearcher.PrinterInfo[] printers = p.Search(printerKind); foreach(PrinterSearcher.PrinterInfo pi in printers) { Console.WriteLine("=====================================\n打印机名: {0}\n描叙:: {1}\n注释: {2}\n=====================================\n", pi.Name, pi.Description, pi.Comment); } } static PRINTER_ENUM GetPrinterConType(int ins) { switch(ins) { case 1: return PRINTER_ENUM.DEFAULT ; case 2: return PRINTER_ENUM.LOCAL; case 3: return PRINTER_ENUM.CONNECTIONS; case 4: return PRINTER_ENUM.NAME; case 5: return PRINTER_ENUM.REMOTE; |