.NET TIPS

インストールされているすべてのプリンタの名前を取得するには?[C#、VB]

デジタルアドバンテージ 一色 政彦
2007/08/02

 本TIPSでは、コンピュータに(ドライバが)インストールされているすべてのプリンタの名前を文字列で取得する方法を説明する。

 これには、PrinterSettingsクラス(System.Drawing.Printing名前空間)の静的プロパティであるInstalledPrintersを活用すればよい。

 InstalledPrintersプロパティからはPrinterSettings.StringCollectionクラス(System.Drawing.Printing名前空間)*1のオブジェクトを取得できる。このオブジェクトは文字列のコレクションを格納しており、その1つ1つの文字列がプリンタ名である。なお、コレクションから個々の文字列を取得するには、foreach(C#の場合。Visual BasicではFor Each)などの繰り返しステートメントによる反復処理を用いればよい。

*1 PrinterSettings.StringCollectionクラスは、PrinterSettingsクラスの中に存在する入れ子クラス(=インナー・クラス)である。

 次のコンソール・アプリケーションのサンプル・プログラムでは、実際にforeach(For Each)キーワードを使って、InstalledPrintersプロパティから1つずつプリンタ名を文字列で取得して、それをコンソール出力している。

using System;
using System.Drawing.Printing;

class Program
{
  static void Main()
  {
    foreach (string printer
      in PrinterSettings.InstalledPrinters)
    {
      Console.WriteLine(printer);
    }
  }
}
Imports System.Drawing.Printing

Module Module1

  Sub Main()

    For Each printer As String _
      In PrinterSettings.InstalledPrinters

      Console.WriteLine(printer)
    Next

  End Sub

End Module
プリンタ名を列挙するコンソール・アプリケーションのプログラム・コード(上:C#、下:VB)
このアプリケーションをビルドするためには、「System.Drawing.dll」ファイルへの参照をあらかじめ追加しておく必要がある。

 このサンプル・アプリケーションを筆者の環境で実行すると、次のようなコンソール出力が得られた。

\\daburncd\hp deskjet 955c series
\\daburncd\RICOH IPSiO Color 2200
\\server01\DeskJet955C
\\server01\IPSiO Color 2200
\\server01\LP-7900
\\server01\PM-890C
\\takaxpht2\EPSON PX-G900
Microsoft XPS Document Writer
Microsoft Office Document Image Writer
サンプル・プログラムの実行結果の例

 このように、(プログラムが実行される)コンピュータにインストールされているプリンタの名前が簡単に取得できる。End of Article

カテゴリ:Windowsフォーム 処理対象:印刷
カテゴリ:クラス・ライブラリ 処理対象:印刷

この記事と関連性の高い別の.NET TIPS
文字列中の1文字を取得するには?
文字と文字列を変換するには?
文字列を1文字ずつ解析するには?(サロゲート文字対応)
文字列の長さを取得するには?
このリストは、(株)デジタルアドバンテージが開発した
自動関連記事探索システム Jigsaw(ジグソー) により自動抽出したものです。
generated by

「.NET TIPS」

TechTargetジャパン

Insider.NET フォーラム 新着記事

@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

RSSフィード

キャリアアップ

- PR -
@IT Sepcial

イベントカレンダー

PickUpイベント

- PR -
もっと見る
- PR -

お勧め求人情報

ホワイトペーパーTechTargetジャパン

@IT Sepcial
ソリューションFLASH