実行ファイルなどからアイコンを得る
<EXE、OCX、DLLなどからアイコンを取得>
宣 言 |
Declare Function ExtractIcon Lib "SHELL32" Alias "ExtractIconA" (ByVal hInst&, ByVal lpszExeFileName$, ByVal nIconIndex&) As Long |
引 数 説 明 |
名称 |
型 |
内容 |
hInst |
Long |
呼び出すアプリのインスタンス。通常はApp.hInstanceでよい。 |
lpszExeFileName |
String |
アイコンを読み出すファイルのパス。 |
nIconIndex |
Long |
読み出すアイコンの番号。−1では含まれるアイコンの総数を返す。 |
戻 り 値 |
型 |
内容 |
Long |
nIconIndexが−1ならアイコンの総数。−1以外ならアイコンのハンドル。 |
サ ン プ ル プ ロ グ ラ ム |
まずフォームモジュールを追加しリストボックスとコマンドボタン、ピクチャーボックスを配置し、以下のコードを張り付け実行してください。コマンドボタンを押すと、ファイル読み込みボックスが表示されますので、アイコンが含まれる大るを指定してください。すると、リストボックスにアイコン一覧が表示されますので、見たいアイコン番号を押すとピクチャーボックスにアイコンを表示します。
Option Explicit Private Declare Function ExtractIcon Lib "SHELL32" Alias "ExtractIconA" (ByVal hInst&, ByVal lpszExeFileName$, ByVal nIconIndex&) As Long Private Declare Function DrawIcon Lib "USER32" (ByVal hDC&, ByVal X&, ByVal Y&, ByVal hIcon&) As Long Dim file As String Private Sub Command1_Click() Dim num As Long Dim i As Long file = InputBox("アイコンがあるファイルを指定してください") num = ExtractIcon(App.hInstance, file, -1) List1.Clear For i = 1 To num List1.AddItem Str(i) Next End Sub Private Sub List1_Click() Dim hIcon As Long Picture1.Cls hIcon = ExtractIcon(App.hInstance, file, List1.ListIndex) DrawIcon Picture1.hDC, 0, 0, hIcon End Sub |