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 に答える