Τρόπος χρήσης της συνάρτησης SHGetFileInfo για να λάβετε τα εικονίδια που σχετίζονται με αρχεία σε Visual Basic .NET

Μεταφράσεις άρθρων Μεταφράσεις άρθρων
Αναγν. άρθρου: 319340 - Δείτε τα προϊόντα στα οποία αναφέρεται το συγκεκριμένο άρθρο.
Για την έκδοση Microsoft Visual C# .NET αυτού του άρθρου, ανατρέξτε στην ενότητα319350.
Ανάπτυξη όλων | Σύμπτυξη όλων

Σε αυτήν τη σελίδα

Περίληψη

Αυτό το άρθρο βήμα προς βήμα περιγράφει τον τρόπο χρήσης τουSHGetFileInfoλειτουργία για να εμφανιστούν τα εικονίδια που σχετίζονται με τα αρχεία.

Δημιουργία μιας εφαρμογής Windows Forms

  1. Ξεκινήστε το Microsoft Visual Studio .NET.
  2. Στο διακομιστήFILEμενού, σημείοΝέα, και στη συνέχεια κάντε κλικ στο κουμπίΤο έργο.
  3. ΣτοΝέο έργοπαράθυρο διαλόγου, κάντε κλικ στο κουμπίΈργα της Visual BasicunderΤύποι έργου, και στη συνέχεια κάντε κλικ στο κουμπίΕφαρμογή των WindowsunderΠρότυπα.
  4. ΣτοNAMEπληκτρολογήστεGetIconSample.

Χρησιμοποιήστε τη συνάρτηση SHGetFileInfo

  1. Προσθέστε τον ακόλουθο κώδικα στην αρχή του αρχείου Form1.vb.
    Imports System.Runtime.InteropServices
    					
  2. Προσθέστε τον ακόλουθο κώδικα στο στοΦόρμα1κλάση μετά τηνΓΊΝΕΤΑΙ ΜΕΤΑΒΊΒΑΣΗπρόταση.
    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. Προσθήκη ενόςlistViewστοιχείο ελέγχου, ένακουμπίστοιχείο ελέγχου, και έναimageListελέγχου στη φόρμα. Τα προεπιλεγμένα ονόματα είναι ListView1 Button1 και ImageList1 αντίστοιχα.
  4. Στο παράθυρο διαλόγου Ιδιότητες τουButton1, ορίστε το κείμενο του κουμπιούΕπιλέξτε ένα αρχείο, και στη συνέχεια προσθέστε τον ακόλουθο κώδικα στο στο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
    					

Εκτελέστε το έργο

  1. Μεταγλωττίστε το έργο: από τοΔημιουργίαμενού, κάντε κλικ στο κουμπίΔημιουργία λύσεων.
  2. Πατήστε F5 για να εκτελέσετε το έργο.
  3. Κάντε κλικΕπιλέξτε ένα αρχείο, και στη συνέχεια επιλέξτε ένα αρχείο με τοOpenπαράθυρο διαλόγου. Το όνομα του αρχείου και του εικονιδίου που συσχετίζεται με το αρχείο εμφανίζεται στο στοΠροβολή λίσταςControl.

Αναφορές

Για πρόσθετες πληροφορίες σε Microsoft Visual C# .NET έκδοση αυτού του άρθρου, κάντε κλικ στον αριθμό του άρθρου παρακάτω, για να προβάλετε το άρθρο της Γνωσιακής Βάσης της Microsoft:
319350Τρόπος χρήσης της συνάρτησης SHGetFileInfo για αντιγραφή του εικονιδίων που είναι συσχετισμένο με αρχεία στο Visual C# .NET

Ιδιότητες

Αναγν. άρθρου: 319340 - Τελευταία αναθεώρηση: Τρίτη, 21 Δεκεμβρίου 2010 - Αναθεώρηση: 2.0
Οι πληροφορίες σε αυτό το άρθρο ισχύουν για:
  • 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
Λέξεις-κλειδιά: 
kbhowtomaster kbmt KB319340 KbMtel
Μηχανικά μεταφρασμένο
ΣΗΜΑΝΤΙΚΟ: Αυτό το άρθρο είναι προϊόν λογισμικού μηχανικής μετάφρασης της Microsoft και όχι ανθρώπινης μετάφρασης. Η Microsoft σάς προσφέρει άρθρα που είναι προϊόντα ανθρώπινης αλλά και μηχανικής μετάφρασης έτσι ώστε να έχετε πρόσβαση σε όλα τα άρθρα της Γνωσιακής Βάσης μας στη δική σας γλώσσα. Ωστόσο, ένα άρθρο που έχει προκύψει από μηχανική μετάφραση δεν είναι πάντα άριστης ποιότητας. Ενδέχεται να περιέχει λεξιλογικά, συντακτικά ή γραμματικά λάθη, όπως ακριβώς τα λάθη που θα έκανε ένας μη φυσικός ομιλητής επιχειρώντας να μιλήσει τη γλώσσα σας. Η Microsoft δεν φέρει καμία ευθύνη για τυχόν ανακρίβειες, σφάλματα ή ζημίες που προκύψουν λόγω τυχόν παρερμηνειών στη μετάφραση του περιεχομένου ή χρήσης του από τους πελάτες της. Επίσης, η Microsoft πραγματοποιεί συχνά ενημερώσεις στο λογισμικό μηχανικής μετάφρασης.
Η αγγλική έκδοση αυτού του άρθρου είναι η ακόλουθη:319340

Αποστολή σχολίων

 

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