2

重複の可能性:
.Net を介して、インストールされているプリンターに関連付けられたアイコンを取得できますか?

C#.NET でプリンターに関連付けられたアイコンを取得するにはどうすればよいですか? アプリケーションで使用するプリンターのアイコンを「プリンターとデバイス」フォルダーに表示するのが理想的です。

1 つの方法は、プリンターがインストールされているフォルダーへのパスをハードコーディングし、アイコンを手動で 1 つずつ取得することです。この質問はすでにここで尋ねられました。

ただし、このアプローチは、特定のフォルダーをスキャンし、関連付けられているプリンターを取得し、取得したプリンター名とプリンター名を照合して表示することに依存しています。

このアプローチは、次の 2 つの理由で不安定になる可能性があります。

  1. これには、プリンターへの場所のハードコーディングが含まれます (OS/バージョンによって異なる場合があります)。

  2. 表示されるプリンター名が、アプリケーションに既に登録されているプリンター名と一致するという保証はありません。

スキャン/手動アプローチを含まないプログラム/マネージド アプローチはありますが、アイコンはマネージド .NET オブジェクトのプロパティとして取得できますか?

4

1 に答える 1

2

KnowFoldersを使用すると、インストールされているすべてのプリンターのアイコンとそのパスを取得できる場合があります。

このFOLDERID_PrintersFolderとGUID{76FC4E2D-D6AD-4519-A663-37BD56068185}があり、これはデバイスとプリンターのフォルダーです。

C#の場合、Microsoft®.NETFramework用のWindows®APIコードパックでそれらにアクセスするためのクラスがあります。

アイコンを取得するには、このコントロールパネルアイテムのショートカットを作成し、メモ帳で確認します。内部にアイコンへのパスがあります。私の場合は、「C:\ Users \ xxx \ appdata \ Local \ Microsoft \ Device Metadata \ dmrccache \ en-US \ 4a65bbe0-2f89-48c1-b84c-8ffdf878dc43 \ DeviceInformation\thinkpad.ico」でした。

ショートカットを作成するには、シェルリンクを使用するか、ディレクトリにアプリケーションショートカットを作成します

于 2012-09-01T17:42:00.713 に答える