Delphi必学技巧:枚举打印机

2008-02-23 07:18:27来源:互联网 阅读 ()

新老客户大回馈,云服务器低至5折

1 2 3 4 下一页

  在某些情况下,我们需要枚举网内的打印机,试试以下的代码,很有可能帮得了你。





  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;





上一篇: Delphi 2005抢先预览
下一篇: 利用Delphi编写Socket通信程序

1 2 3 4 下一页

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:Delpih 中的Windows API编程初步

下一篇:Delphi接口编程的两大陷阱