Szybkie szukanie
Słowo kluczowe:
sobota, 11 luty 2012
Start arrow Tips & Tricks arrow Wyciąganie ikon z plików.(przysłał SPECtrum)
Wyciąganie ikon z plików.(przysłał SPECtrum) Drukuj E-mail
Napisał Administrator   
sobota, 21 styczeń 2006
'To chyba jasne. Wyciąga ikonę z pliku.
'Użycie: ExtractIcon "Photoshp.exe", PictureBox, 16
'Użycie 2: ExtractIcon "Photoshp.exe", PictureBox, 32
'Ostatnia liczba określa rozmiar ikony. Może to być 16 lub 32

Option Explicit

Public Const MAX_PATH = 260
Public Const SHGFI_DISPLAYNAME = &H200
Public Const SHGFI_EXETYPE = &H2000
Public Const SHGFI_SYSICONINDEX = &H4000 ' Systemowy index ikony
Public Const SHGFI_LARGEICON = &H0' Duża icon
Public Const SHGFI_SMALLICON = &H1' Mała icon
Public Const ILD_TRANSPARENT = &H1' Wyświetl przeźroczyste tło
Public Const SHGFI_SHELLICONSIZE = &H4
Public Const SHGFI_TYPENAME = &H400
Public Const BASIC_SHGFI_FLAGS = SHGFI_TYPENAME _
Or SHGFI_SHELLICONSIZE Or SHGFI_SYSICONINDEX _
Or SHGFI_DISPLAYNAME Or SHGFI_EXETYPE

Public Type SHFILEINFO
hIcon As Long
iIcon As Long
dwAttributes As Long
szDisplayName As String * MAX_PATH
szTypeName As String * 80
End Type

Public Declare Function SHGetFileInfo Lib "shell32.dll" Alias "SHGetFileInfoA" _
(ByVal pszPath As String, _
ByVal dwFileAttributes As Long, _
psfi As SHFILEINFO, _
ByVal cbSizeFileInfo As Long, _
ByVal uFlags As Long) As Long

Public Declare Function ImageList_Draw Lib "comctl32.dll" _
(ByVal himl&, ByVal i&, ByVal hDCDest&, _
ByVal x&, ByVal y&, ByVal flags&) As Long

Public shinfo As SHFILEINFO


Public Function ExtractIcon(nazwaPliku As String, picBox As PictureBox, rozmIkony As Integer) As Long
Dim hImgSmall As Long ' Przejęcie systemowego wyświetlania ikon
Dim hImgLarge As Long
Dim FileName As String ' Nazwa pliku z ikoną
Dim r As Long

FileName = nazwaPliku

' Pobranie ikony z pliku
hImgSmall = SHGetFileInfo(FileName, 0, shinfo, Len(shinfo), BASIC_SHGFI_FLAGS Or SHGFI_SMALLICON)

hImgLarge = SHGetFileInfo(FileName, 0, shinfo, Len(shinfo), BASIC_SHGFI_FLAGS Or SHGFI_LARGEICON)

' Ustawienie PictureBox do wyświetlania ikony i Auto Odświerzania
picBox.AutoRedraw = True
picBox = LoadPicture()

' Wyświetlenie ikony 16x16 lub 32x32
If rozmIkony = 16 Then
r = ImageList_Draw(hImgSmall, shinfo.iIcon, picBox.hDC, 0, 0, ILD_TRANSPARENT)
ElseIf rozmIkony = 32 Then
r = ImageList_Draw(hImgLarge, shinfo.iIcon, picBox.hDC, 0, 0, ILD_TRANSPARENT)
End If

End Function

Komentarze

Aby dodać komentarz zaloguj się. Jeśli nie masz konta, załóż je sobie.
Tylko zarejestrowani użytkownicy mogą pisać komentarze.

Powered by AkoComment 2.0!

< Poprzedni   Następny >

Menu główne
Start
Teoria
VB.NET
Api
Tips & Tricks
Warsztat
VBMagazine
Pliki
Forum
Literatura
Ankiety
Linki
Szukaj
Wyślij program
Napisz do nas
Redakcja
Logowanie
Login

Hasło

Zapamiętaj mnie
Nie pamiętasz hasła?
Nie masz konta? Załóż je sobie
Gościmy
Aktualnie jest 62 gości online
Statystyka
Użytkownicy: 11345
Newsy: 237
Odnośniki: 48
Odwiedzających: 4327632
Mambo is Free Software released under the GNU/GPL License.