DOBON.NET

システムのアイコンを取得する

SystemIconsクラス(System.Drawing名前空間)のプロパティを参照することにより、Windowsのシステムのアイコン(既定のアプリケーションアイコン、エラーアイコン、疑問符アイコンなど)のIconオブジェクトを取得することができます。

次の例ではSystemIconsクラスから取得できる各アイコンを順番にPictureBox1に表示しています。

VB.NET
コードを隠すコードを選択
'Imports System.Drawing

'システムのアイコンを表示する

'描画先とするImageオブジェクトを作成する
Dim canvas As New Bitmap(PictureBox1.Width, PictureBox1.Height)
'ImageオブジェクトのGraphicsオブジェクトを作成する
Dim g As Graphics = Graphics.FromImage(canvas)

'既定のアプリケーションアイコン(WIN32: IDI_APPLICATION)
g.DrawIcon(SystemIcons.Application, 0, 0)
'システムのアスタリスクアイコン(WIN32: IDI_ASTERISK)
g.DrawIcon(SystemIcons.Asterisk, 40, 0)
'システムのエラーアイコン(WIN32: IDI_ERROR)
g.DrawIcon(SystemIcons.Error, 80, 0)
'システムの感嘆符アイコン(WIN32: IDI_EXCLAMATION)
g.DrawIcon(SystemIcons.Exclamation, 120, 0)
'システムの手の形のアイコン(WIN32: IDI_HAND)
g.DrawIcon(SystemIcons.Hand, 160, 0)
'システムの情報アイコン(WIN32: IDI_INFORMATION)
g.DrawIcon(SystemIcons.Information, 200, 0)
'システムの疑問符アイコン(WIN32: IDI_QUESTION)
g.DrawIcon(SystemIcons.Question, 240, 0)
'システムの警告アイコン(WIN32: IDI_WARNING)
g.DrawIcon(SystemIcons.Warning, 280, 0)
'Windowsのロゴアイコン(WIN32: IDI_WINLOGO)
g.DrawIcon(SystemIcons.WinLogo, 320, 0)

g.Dispose()

'PictureBox1に表示する
PictureBox1.Image = canvas
C#
コードを隠すコードを選択
//using System.Drawing;

//システムのアイコンを表示する

//描画先とするImageオブジェクトを作成する
Bitmap canvas = new Bitmap(PictureBox1.Width, PictureBox1.Height);
//ImageオブジェクトのGraphicsオブジェクトを作成する
Graphics g = Graphics.FromImage(canvas);

//既定のアプリケーションアイコン(WIN32: IDI_APPLICATION)
g.DrawIcon(SystemIcons.Application, 0, 0);
//システムのアスタリスクアイコン(WIN32: IDI_ASTERISK)
g.DrawIcon(SystemIcons.Asterisk, 40, 0);
//システムのエラーアイコン(WIN32: IDI_ERROR)
g.DrawIcon(SystemIcons.Error, 80, 0);
//システムの感嘆符アイコン(WIN32: IDI_EXCLAMATION)
g.DrawIcon(SystemIcons.Exclamation, 120, 0);
//システムの手の形のアイコン(WIN32: IDI_HAND)
g.DrawIcon(SystemIcons.Hand, 160, 0);
//システムの情報アイコン(WIN32: IDI_INFORMATION)
g.DrawIcon(SystemIcons.Information, 200, 0);
//システムの疑問符アイコン(WIN32: IDI_QUESTION)
g.DrawIcon(SystemIcons.Question, 240, 0);
//システムの警告アイコン(WIN32: IDI_WARNING)
g.DrawIcon(SystemIcons.Warning, 280, 0);
//Windowsのロゴアイコン(WIN32: IDI_WINLOGO)
g.DrawIcon(SystemIcons.WinLogo, 320, 0);

g.Dispose();

//PictureBox1に表示する
PictureBox1.Image = canvas;

結果として、例えばWindows 2000では次のように表示されました。
SystemIconsの表示 (Windows 2000)

Windows 7では次のように表示されました。
SystemIconsの表示 (Windows 7)

表にまとめると、次のようになります。

SystemIconsメンバ画像説明WIN32
Application既定のアプリケーション アイコンIDI_APPLICATION
Asteriskシステムのアスタリスク アイコンIDI_ASTERISK
Errorシステムのエラー アイコンIDI_ERROR
Exclamationシステムの感嘆符アイコンIDI_EXCLAMATION
Handシステムの手の形のアイコンIDI_HAND
Informationシステムの情報アイコンIDI_INFORMATION
Questionシステムの疑問符アイコンIDI_QUESTION
Warningシステムの警告アイコンIDI_WARNING
WinLogoWindows のロゴ アイコンIDI_WINLOGO
Shieldユーザー アカウント制御 (UAC: User Account Control) のシールド アイコン
.NET Framework 3.5から追加

補足:WinLogoはWindows XPから既定のアプリケーションアイコンと同じになりました。詳しくは「Microsoft Windows ロゴ アイコンの代わりに汎用的なウィンドウのアイコンが表示されます。」をご覧ください。

  • 履歴:
  • 2006/11/28 表を追加。
  • 2011/12/16 Shieldプロパティの説明を追加。WinLogoの補足を追加。アイコンの画像をWindows 7のものに変更。
  • 2012/8/4 表示する方法を、PictureBox.Imageプロパティを使った方法に変更。

注意:この記事では、基本的な事柄の説明が省略されているかもしれません。初心者の方は、特に以下の点にご注意ください。

  • このサイトで紹介されているコードの多くは、例外処理が省略されています。例外処理については、こちらをご覧ください。
  • コードの先頭に記述されている「Imports ??? がソースファイルの一番上に書かれているものとする」(C#では、「using ???; がソースファイルの一番上に書かれているものとする」)の意味が分からないという方は、こちらをご覧ください。
  • .NET Tipsをご利用いただく際は、注意事項をお守りください。
共有する

この記事への評価

この記事へのコメント

この記事に関するコメントを投稿するには、下のボタンをクリックしてください。投稿フォームへ移動します。通常のご質問、ご意見等は掲示板へご投稿ください。