Come utilizzare la funzione SHGetFileInfo per ottenere le icone associate ai file in Visual Basic .NET

Traduzione articoli Traduzione articoli
Identificativo articolo: 319340 - Visualizza i prodotti a cui si riferisce l?articolo.
Per la una versione di Microsoft Visual C# .NET di questo articolo, vedere 319350.
Espandi tutto | Chiudi tutto

In questa pagina

Sommario

In questo articolo viene descritto come utilizzare la funzione di SHGetFileInfo per ottenere le icone associate ai file.

Creazione di un'applicazione Windows Form

  1. Avviare Microsoft Visual Studio .NET.
  2. Scegliere Nuovo dal menu file , quindi progetto .
  3. Nella finestra di dialogo Nuovo progetto , fare clic su Progetti di Visual Basic in Tipi progetto e scegliere Applicazione Windows in modelli .
  4. Nella casella nome , digitare GetIconSample .

Utilizzare la funzione SHGetFileInfo

  1. Aggiungere il codice riportato di seguito all'inizio del file Form1.vb.
    Imports System.Runtime.InteropServices
    					
  2. Aggiungere il codice riportato di seguito nella classe Form1 dopo l'istruzione di INHERITS .
    Private Structure SHFILEINFO
            Public hIcon As IntPtr ' : icon
            Public iIcon As Integer ' : icondex
            Public dwAttributes As Integer ' : SFGAO_ flags
            <MarshalAs(UnmanagedType.ByValTStr, SizeConst:=260)> _
            Public szDisplayName As String
            <MarshalAs(UnmanagedType.ByValTStr, SizeConst:=80)> _
            Public szTypeName As String
    End Structure
    
    Private Declare Ansi Function SHGetFileInfo Lib "shell32.dll" (ByVal pszPath As String, _
    ByVal dwFileAttributes As Integer, ByRef psfi As SHFILEINFO, ByVal cbFileInfo As Integer, _
    ByVal uFlags As Integer) As IntPtr
    
    Private Const SHGFI_ICON = &H100
    Private Const SHGFI_SMALLICON = &H1
    Private Const SHGFI_LARGEICON = &H0         ' Large icon
    Private nIndex = 0
    					
  3. Aggiungere al form un controllo listView , un controllo pulsante e un controllo imageList . I nomi predefiniti sono rispettivamente ListView1, Button1 e ImageList1.
  4. Nella finestra Proprietà di Button1 , impostare il testo del pulsante per Selezionare un file e quindi aggiungere il codice riportato di seguito nell'evento Button1_Click :
    Dim hImgSmall As IntPtr  'The handle to the system image list.
    Dim hImgLarge As IntPtr  'The handle to the system image list.
    Dim fName As String      'The file name to get the icon from.
    Dim shinfo As SHFILEINFO
    shinfo = New SHFILEINFO()
    Dim openFileDialog1 As OpenFileDialog
    openFileDialog1 = New OpenFileDialog()
    
    openFileDialog1.InitialDirectory = "c:\temp\"
    openFileDialog1.Filter = "All files (*.*)|*.*"
    openFileDialog1.FilterIndex = 2
    openFileDialog1.RestoreDirectory = True
    
    listView1.SmallImageList = imageList1
    listView1.LargeImageList = ImageList1
    
    shinfo.szDisplayName = New String(Chr(0), 260)
    shinfo.szTypeName = New String(Chr(0), 80)
    
    If (openFileDialog1.ShowDialog() = DialogResult.OK) Then
         fName = openFileDialog1.FileName
    
         'Use this to get the small icon.
         hImgSmall = SHGetFileInfo(fName, 0, shinfo, Marshal.SizeOf(shinfo), _
             SHGFI_ICON Or SHGFI_SMALLICON)
    
         'Use this to get the large icon.
         'hImgLarge = SHGetFileInfo(fName, 0, 
         'ref shinfo, (uint)Marshal.SizeOf(shinfo), 
         'SHGFI_ICON | SHGFI_LARGEICON);
    
         'The icon is returned in the hIcon member of the shinfo struct.
         Dim myIcon As System.Drawing.Icon
         myIcon = System.Drawing.Icon.FromHandle(shinfo.hIcon)
    
         imageList1.Images.Add(myIcon) 'Add icon to imageList.
    
         listView1.Items.Add(fName, nIndex) 'Add file name and icon to listview.
         nIndex = nIndex + 1
    End If
    					

Eseguire il progetto

  1. Compilare il progetto: scegliere Genera soluzione dal menu Genera .
  2. Premere F5 per eseguire il progetto.
  3. Fare clic su Seleziona un file e quindi selezionare un file nella finestra di dialogo Apri . Il nome del file e l'icona che è associato il file visualizzato nel controllo ListView .

Riferimenti

Per ulteriori informazioni in una versione Microsoft Visual C# .NET di questo articolo, fare clic sul numero dell'articolo della Microsoft Knowledge Base riportato di seguito:
319350Come utilizzare la funzione di SHGetFileInfo per richiamare le icone che associate al file in Visual C# .NET

Proprietà

Identificativo articolo: 319340 - Ultima modifica: martedì 6 luglio 2004 - Revisione: 2.0
Le informazioni in questo articolo si applicano a:
  • Microsoft Visual Studio .NET 2002 Professional Edition
  • Microsoft Visual Studio .NET 2002 Enterprise Architect
  • Microsoft Visual Studio .NET 2002 Enterprise Developer
  • Microsoft Visual Studio .NET 2002 Academic Edition
Chiavi: 
kbmt kbhowtomaster KB319340 KbMtit
Traduzione automatica articoli
Il presente articolo è stato tradotto tramite il software di traduzione automatica di Microsoft e non da una persona. Microsoft offre sia articoli tradotti da persone fisiche sia articoli tradotti automaticamente da un software, in modo da rendere disponibili tutti gli articoli presenti nella nostra Knowledge Base nella lingua madre dell?utente. Tuttavia, un articolo tradotto in modo automatico non è sempre perfetto. Potrebbe contenere errori di sintassi, di grammatica o di utilizzo dei vocaboli, più o meno allo stesso modo di come una persona straniera potrebbe commettere degli errori parlando una lingua che non è la sua. Microsoft non è responsabile di alcuna imprecisione, errore o danno cagionato da qualsiasi traduzione non corretta dei contenuti o dell?utilizzo degli stessi fatto dai propri clienti. Microsoft, inoltre, aggiorna frequentemente il software di traduzione automatica.
Clicca qui per visualizzare la versione originale in inglese dell?articolo: 319340
LE INFORMAZIONI CONTENUTE NELLA MICROSOFT KNOWLEDGE BASE SONO FORNITE SENZA GARANZIA DI ALCUN TIPO, IMPLICITA OD ESPLICITA, COMPRESA QUELLA RIGUARDO ALLA COMMERCIALIZZAZIONE E/O COMPATIBILITA' IN IMPIEGHI PARTICOLARI. L'UTENTE SI ASSUME L'INTERA RESPONSABILITA' PER L'UTILIZZO DI QUESTE INFORMAZIONI. IN NESSUN CASO MICROSOFT CORPORATION E I SUOI FORNITORI SI RENDONO RESPONSABILI PER DANNI DIRETTI, INDIRETTI O ACCIDENTALI CHE POSSANO PROVOCARE PERDITA DI DENARO O DI DATI, ANCHE SE MICROSOFT O I SUOI FORNITORI FOSSERO STATI AVVISATI. IL DOCUMENTO PUO' ESSERE COPIATO E DISTRIBUITO ALLE SEGUENTI CONDIZIONI: 1) IL TESTO DEVE ESSERE COPIATO INTEGRALMENTE E TUTTE LE PAGINE DEVONO ESSERE INCLUSE. 2) I PROGRAMMI SE PRESENTI, DEVONO ESSERE COPIATI SENZA MODIFICHE, 3) IL DOCUMENTO DEVE ESSERE DISTRIBUITO INTERAMENTE IN OGNI SUA PARTE. 4) IL DOCUMENTO NON PUO' ESSERE DISTRIBUITO A SCOPO DI LUCRO.

Invia suggerimenti

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com