.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
サンプル・プログラムの実行結果の例
このように、(プログラムが実行される)コンピュータにインストールされているプリンタの名前が簡単に取得できる。
カテゴリ: Windowsフォーム 処理対象: 印刷
カテゴリ: クラス・ライブラリ 処理対象: 印刷
generated by
TechTargetジャパン
キャリアアップ
**先週の人気講座ランキング**
〜 Android編 〜