1

我编写了代码来获取安装在我的系统中的打印机的名称。但我不知道要获取该打印机端口名称。这里是我写的代码。

public MainWindow()
    {
        this.InitializeComponent();

        PrintServer server = new PrintServer();

        foreach (PrintQueue queue in server.GetPrintQueues())
        {
            cboPrinters.Items.Add(queue.FullName);
        }

        var DefaultPrinter = new LocalPrintServer().DefaultPrintQueue;
        string default_name=DefaultPrinter.FullName;

        txxt_default.Text = "The default printe is "+" "+default_name;
    }

结果会是这样

打印机

在此处输入图像描述

我必须得到选定打印机的端口名称“DOP7”(下图提到)。请帮帮我。

4

1 回答 1

2

您是否尝试过PrintQueue.QueuePort 属性

string default_port = DefaultPrinter.QueuePort.Name;

更新:

然后我建议将PrintQueue对象添加到ComboBox

public MainWindow()
{
   InitializeComponent();

   PrintServer server = new PrintServer();

   foreach (PrintQueue queue in server.GetPrintQueues())
   {
      cboPrinters.Items.Add(queue);
   }
}

DisplayMemberPath用于显示FullName

<ComboBox Name="cboPrinters"
          DisplayMemberPath="FullName"
          SelectionChanged="cboPrinters_SelectionChanged" />

在 EventHandler 中,您可以获得如下端口名称:

private void cboPrinters_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
   PrintQueue printer = cboPrinters.SelectedItem as PrintQueue;
   string portname = printer.QueuePort.Name;
}
于 2012-06-15T22:04:32.337 回答